doumalu9257 2016-02-22 22:25
浏览 49
已采纳

Laravel 5.2路由模型绑定

Laravel has a documentation regarding route model binding which could be found here. But there is no example with regards to this kind of scenario:

Route::get('search/', 'ArticleController@search');

How to I implicitly bind a model into the route? I know I could do something like this directly on the controller's method.

public function search(Model $model) {
    // some code here
}

But I'm just curious on how to do it on the routes instead.

I am after this approach

Route::get('search/{article}', function(ArticlesModel $articlesModel) {
    // this should be calling 'ArticleController@search'
});

Thanks!

  • 写回答

2条回答 默认 最新

  • dooid3005 2016-02-22 22:32
    关注

    Because your variable is called $model, Laravel will look for a wildcard segment of the url written as {model}:

    In routes.php:

    Route::get('search/{article}', 'ArticleController@search');
    

    In controller:

    function search(Article $article) {
        //$article is the Article with the id from {article}, ie. articles/2 is article 2
    }
    

    Edit... the way that you are suggesting doesn't really make sense. That would just be an extra step that is skipped entirely by just using "ArticleController@search". I think this code would function although I don't recommend it:

    Route::get('search/{article}', function(Article $article)
    {
        $controller = App::make(ArticleController::class);
        return App::call([$controller, 'search'], compact('article'));
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 Revit2020下载问题
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 单片机无法进入HAL_TIM_PWM_PulseFinishedCallback回调函数
  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线