我正在尝试从操作中获取信息,但是当单击时,只需刷新页面,在控制台中我就可以得到代码302并保持在当前页面上。
我在这里读了很多类似的话题,但什么也没有发现。
我正在尝试执行id=2
拉威尔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]);
}
}在日志文件中没有错误。
谢谢您的帮助和建议。
发布于 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}', ...
public function getUserChannels($id)
{
$user = User::findOrFail($id);
return view('singleuser', [
'channels' => $user->channels,
'username' => $user->name
]);
}然后它只会抛出404如果字符串,没有找到等等..。
发布于 2018-12-09 11:24:09
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]);
}
}https://stackoverflow.com/questions/53691088
复制相似问题