路由模型绑定多个参数

时间:2016-06-11 19:20:33

标签: php laravel laravel-5.2

在route.php中,我有这个:

Route::get('sells/{sells}/{slug}', 'SellsController@show');

在RouteServiceProvided.php中,我有这个绑定:

$router->bind('sells', function($id, Route $route){
    $action = last(explode('@',$route->getActionName()));
    return ($action == 'edit')? Sell::isActive()->owned()->findOrFail($id) : Sell::isActive()->findOrFail($id);
});

如你所见,我与{slug}无关。我想知道如何将slu pass传递到绑定闭包?

感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

传递给该闭包的是什么,因为你的代码没有调用它,但框架是。您可以尝试从路线获取参数。在闭包中你可以拉参数:

null

答案 1 :(得分:0)

喜欢这个

 function($id, Route $route) use( $slug ){
     //...........

http://php.net/manual/en/functions.anonymous.php

参见示例#3

这使您可以在定义闭包时传递其他信息(与执行闭包时相反,使用其调用参数)

答案 2 :(得分:0)

如果你真的不需要使用" bind",请使用" get"或"发布"代替:

$router->get('sells/{sells}/{slug}', function($sell, $slug)
{
    echo 'Sell ID: ' . $sell;
    echo '<br>';
    echo 'Slug: ' . $slug;
});