在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传递到绑定闭包?
感谢任何帮助。
答案 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;
});