我正在使用Laravel 5.1的route model binding来推断/实例化路线中的正确模型实例。
我不想为每个资源重写show()
方法,而宁愿在通用父类中调用父show()
方法。问题是,我不知道如何允许我的父类的show()
方法推断出正确的模型实例,所以我不得不在每个子资源上创建一个show()
并指定模型(如下所示,User $user
)。
如何从RouteServiceProvider
:App\User
中的绑定中获取控制器中的绑定模型?并将其传递给父show()
方法?
路线:
// Passing in id 1 for {user}
$router->get('/users/{user}', 'Resources\Users@show');
RouteServiceProvider.php:
public function boot(Router $router)
{
parent::boot($router);
$router->model('user', 'App\User');
}
UsersController.php:我目前的工作方式
class User extends ResourceController
{
public function show(Request $request, User $user)
{
// Returns user of ID 1 as expected
return $user;
}
ResourceController.php:我想怎么做
class ResourceController extends Controller
{
public function show(Request $request, Model $model)
{
// Infer "Users" model here and returns User with ID 1
return $model;
}