请教下不登录的情况下收藏商品端的报错问题

  public function favor(Product $product, Request $request)
    {
        $user = $request->user();
        if ($user->favoriteProducts()->find($product->id)) {
            return [];
        }

        $user->favoriteProducts()->attach($product);

        return [];
    }

这里在不登录的时候,出现了一个报错500

Laravel
有个疑问,在不登录的情况下$request->user()就为空,点击收藏的时候,就出现上面的报错,是如何跳转提示401

TigerLin
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
leo
最佳答案

favor() 方法是在 auth 中间件的保护下,所以未登录用户进不到这个逻辑。

4年前 评论
讨论数量: 7
leo

favor() 方法是在 auth 中间件的保护下,所以未登录用户进不到这个逻辑。

4年前 评论
TigerLin

@leo 在教程中不是在未登陆下的情况下,点击收藏,提升请先登录嘛,在我未登陆点击收藏报错500是什么原因呢

4年前 评论
leo

@深入浅出 路由放错地方了

4年前 评论
TigerLin

@leo

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('products', 'ProductsController@index')->name('products.index');

Route::get('/','PagesController@root')->name('root')->middleware('verified');

Auth::routes(['verify' => true]);

//
Route::group(['middlerware' => ['auth','verified']],function(){
    Route::redirect('/','/products')->name('root');

    Route::post('products/{product}/favorite','ProductsController@favor')->name('products.favor');

});

放这里应该对的吧

4年前 评论
leo

middlerware -> middleware

4年前 评论
TigerLin

@leo 感谢

4年前 评论

@leo 请教, 我的中间键和路由如下,还是提示500; 我是5.5版本写法

中间键
file

路由
file
报错
file

4年前 评论
leo 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!