首页 文章

Laravel 302重定向问题

提问于
浏览
2

我正在尝试从操作中获取信息,但是当单击时,只需页面刷新并在控制台中我获得代码302并保持当前页面 .

我在这里阅读了很多类似的主题,但一无所获 .

我正在尝试执行http://laravel2.lo/getUserChannels?user_id=2

Laravel 5.7.16

路线:

Auth::routes();

Route::group(['middleware' => ['auth']], function () {
    Route::view('createUser', 'createuser');
    Route::view('createChannel', 'createchannel');
    Route::view('joinChannel', 'joinchannel');


    Route::get('profile', 'UserController@profile');
    Route::get('users', 'UserController@users');
    Route::get('getChannelUsers', 'UserController@getChannelUsers');
    Route::get('getUserChannels', 'ChannelController@getUserChannels');

});

ChannelController:

class ChannelController extends Controller
{
    public function getUserChannels(Request $request)
    {
        $this->validate($request, [
            'user_id' => 'required|integer',
        ]);

        /** @var User $user */
        $user = User::find($request->user_id);

        return view('singleuser', ['channels' => $user->channels, 'username' => $user->name]);
    }
}

在日志文件中没有错误 .

感谢您的帮助和建议 .

2 回答

  • 0

    我认为您不会将查询参数作为字符串以外的任何内容接收,因此您的整数验证失败 .

    为了改善你的错误处理,你可以自定义 App\Exceptions\Handler ,用 get_class()instanceOf 之类的东西来捕捉你的 ValidationException 错误并在那里做一些整洁的东西

    当然,你根本不能使用 Route::get('getUserChannels/{id}', 'controller@show'); 并访问它/ getUserChannels / 2来使用查询参数 - 然后你可以将它验证为一个整数


    你可以去

    Route::get('getUserChannels/{id}', ...

    public function getUserChannels($id)
    {
        $user = User::findOrFail($id);
    
        return view('singleuser', [
            'channels' => $user->channels,
            'username' => $user->name
        ]);
    }
    

    然后它会抛出404如果字符串,没有找到等...

  • 1
    class ChannelController extends Controller
        {
            public function getUserChannels(Request $request)
            {
                $validator = \Validator::make($request->all(), ['user_id' => 'required|integer']);
    
                 if($validator->fails())
                 {
                   $error = $validator->errors()->first();
    
                     dd($error);
                }
    
                /** @var User $user */
                $user = User::find($request->user_id);
    
                return view('singleuser', ['channels' => $user->channels, 'username' => $user->name]);
            }
        }
    

相关问题