当缺少1个参数时,添加到laravel中的异常web路由
我在laravel框架中遇到了问题,我在web路由中有两个参数,在数据库中查找某些内容的确切值。当我删除一个字符时,会出现错误 路线为:当缺少1个参数时,添加到laravel中的异常web路由,laravel,Laravel,我在laravel框架中遇到了问题,我在web路由中有两个参数,在数据库中查找某些内容的确切值。当我删除一个字符时,会出现错误 路线为: Route::get('/serije/prikaz/{id}/{naziv}', 'SerijeController@prikaz')->where(['id' => '[0-9]+', 'naziv' => '^[a-z0-9]+(?:-[a-z0-9]+)*$']); 控制器为: public function prikaz($id,
Route::get('/serije/prikaz/{id}/{naziv}', 'SerijeController@prikaz')->where(['id' => '[0-9]+', 'naziv' => '^[a-z0-9]+(?:-[a-z0-9]+)*$']);
控制器为:
public function prikaz($id, $naziv)
{
$serija = DB::table('serije')
->where(
[
['id', '=', $id],
['slug', '=', $naziv],
]
)
->first();
return view('serije.prikaz', ['serija' => $serija,);
}
所以我的url是这样的:
ID=418
slug=精英
这是在数据库中,当我只删除一个字符时,如
有错误
ErrorException
Trying to get property 'naziv' of non-object
http://localhost/serije/prikaz/418/elit
我如何创建自定义错误消息,如“没有数据”,或“您创建了错误的url”
谢谢。您可以向控制器添加一些消息:
public function prikaz($id, $naziv)
{
$serija = DB::table('serije')
->where(
[
['id', '=', $id],
['slug', '=', $naziv],
]
)
->first();
$message = $serija ? '': 'There is no data for that';
return view('serije.prikaz', compact('serija', 'message'));
}
然后检查以确保视图中的$serija
不为空,如果为空,则显示消息。
导入类:
use Illuminate\Support\Facades\Validator;
在职能范围内:
$validator = Validator::make($request->all(), [
'id' => 'required',
'naviz' => 'required'
]);
if($validator->fails()) {
$errors = $validator->errors();
return response()->json(['status' => 'error', 'data' => null, 'message' => $errors], 422);
}
您应该在刀片视图中检查
@if($serija==null)
,或者您可以将->first()
替换为->firstOrFail()