我需要在路由中使用函数来返回控制器名称。这是我的路由器代码。
Route::group(['middleware'=>'auth'],function(){
Route::Resource('profile', return_controller(session()->get('category')));
});
function return_controller($category_id) {
switch ($category_id) {
case 1: return 'ServicesHallController';
break;
case 2: return 'ServicesBeautycenterController';
break;
case 3: return 'ServicesDressController';
break;
case 4: return 'ServicesCarController';
break;
case 5: return 'ServicesPhotographyController';
break;
case 6: return 'ServicesHoneymoonController';
break;
}
}
答案 0 :(得分:0)
您应该使用中间件来处理支票。 将您的controller_returns函数重构为中间件。
否则,laravel是PHP,所以如果你调用一个需要字符串的函数,那么该函数返回一个应该有效的字符串。 如果它不,您可能忘记了返回的字符串中的命名空间。
例如:'name \ space \ controllerName'
如果它仍然不起作用,请检查您的会话存储是否为空。
答案 1 :(得分:0)
我会将控制器名称放入查找数组中,并将其作为内联字符串访问,如下所示:
var error = new Error("New password and confirmation do not match");
error.status = 400;
return cb(error);
如果需要,可以将控制器查找表放入配置数组中。与选择结构相比,数组更便于携带,更易于维护。