我正在尝试从操作中获取信息,但是当单击时,只需页面刷新并在控制台中我获得代码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 回答
我认为您不会将查询参数作为字符串以外的任何内容接收,因此您的整数验证失败 .
为了改善你的错误处理,你可以自定义
App\Exceptions\Handler
,用get_class()
或instanceOf
之类的东西来捕捉你的ValidationException
错误并在那里做一些整洁的东西当然,你根本不能使用
Route::get('getUserChannels/{id}', 'controller@show');
并访问它/ getUserChannels / 2来使用查询参数 - 然后你可以将它验证为一个整数你可以去
Route::get('getUserChannels/{id}', ...
然后它会抛出404如果字符串,没有找到等...