Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是laravel 5.1中的“路线绑定”_Laravel_Laravel 5_Laravel 5.1_Laravel Routing - Fatal编程技术网

什么是laravel 5.1中的“路线绑定”

什么是laravel 5.1中的“路线绑定”,laravel,laravel-5,laravel-5.1,laravel-routing,Laravel,Laravel 5,Laravel 5.1,Laravel Routing,什么是laravel中的路由绑定。为什么我们要用这个。你能用简单的话给我解释一下吗。以下是在Laravel的网站上提供的路线模型绑定的详细信息,我认为这很容易理解 Laravel模型绑定提供了一种将类实例注入路由的方便方法。例如,您可以注入与给定ID匹配的整个用户类实例,而不是注入用户ID 首先,使用路由器的model方法为给定参数指定类。您应该在RouteServiceProvider::boot方法中定义模型绑定: 将参数绑定到模型 public function boot(Router $

什么是laravel中的
路由绑定
。为什么我们要用这个。你能用简单的话给我解释一下吗。

以下是在Laravel的网站上提供的路线模型绑定的详细信息,我认为这很容易理解

Laravel模型绑定提供了一种将类实例注入路由的方便方法。例如,您可以注入与给定ID匹配的整个用户类实例,而不是注入用户ID

首先,使用路由器的model方法为给定参数指定类。您应该在RouteServiceProvider::boot方法中定义模型绑定:

将参数绑定到模型

public function boot(Router $router)
{
parent::boot($router);

$router->model('user', 'App\User');
}
接下来,定义包含{user}参数的路由:

Route::get('profile/{user}', function(App\User $user)
{
//
});
由于我们已将{user}参数绑定到App\user模型,因此将向路由中注入一个用户实例。因此,例如,对profile/1的请求将注入ID为1的用户实例

如果希望指定自己的“未找到”行为,请将闭包作为第三个参数传递给model方法:

Route::model('user', 'User', function()
{
throw new NotFoundHttpException;
});
如果您希望使用自己的解析逻辑,那么应该使用Route::bind方法。传递给bind方法的闭包将接收URI段的值,并应返回要注入路由的类的实例:

Route::bind('user', function($value)
{
return User::where('name', $value)->first();
});

有关路由的详细说明可在Laravel docs上找到。

这里有两个链接可以让您大致了解:

  • 否则,@KhanShahrukh给出的解决方案应该可以解决您的疑问