首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 302重定向问题

Laravel 302重定向问题
EN

Stack Overflow用户
提问于 2018-12-09 09:47:26
回答 2查看 1.2K关注 0票数 1

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

我在这里读了很多类似的话题,但什么也没有发现。

我正在尝试执行id=2

拉威尔5.7.16

路线:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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]);
    }
}

在日志文件中没有错误。

谢谢您的帮助和建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-09 11:01:32

我认为除了字符串之外,您不会接收查询参数,因此整数验证失败。

要改进您的错误处理,您可以定制您的App\Exceptions\Handler,用get_class()instanceOf之类的东西捕获您的ValidationException错误,并在那里做一些整洁的事情。

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

你可以和

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

代码语言:javascript
复制
public function getUserChannels($id)
{
    $user = User::findOrFail($id);

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

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

票数 0
EN

Stack Overflow用户

发布于 2018-12-09 11:24:09

代码语言:javascript
复制
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]);
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53691088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档