Laravel控制器中如何访问路由apiResource的$options数组
在Laravel控制器中获取apiResource路由的自定义选项值
要获取你在Route::apiResource中定义的teste选项值,可以通过当前请求对应的路由实例提取,具体操作如下:
- 在控制器方法中,通过请求实例获取当前路由对象
- 调用路由对象的
getAction()方法,返回包含自定义选项的动作数组 - 从数组中取出
teste对应的值
代码示例:
在控制器的任意方法中(如index或show):
use Illuminate\Http\Request; class ResourceController extends Controller { public function index(Request $request) { // 获取自定义选项值 $testeValue = $request->route()->getAction()['teste'] ?? null; // 后续可使用$testeValue执行业务逻辑 return response()->json(['teste_value' => $testeValue]); } }
补充说明:
apiResource生成的所有路由(index、store、show、update、destroy)都会继承你传入的自定义选项,因此对应控制器的任意方法都能通过上述方式取值- 加入
?? null是为了避免teste键不存在时触发报错,你可根据需求替换为合适的默认值 - 若习惯使用Facade,也可以用
Route::current()->getAction()['teste'] ?? null来获取值
内容的提问来源于stack exchange,提问作者lsbrel
相关产品推荐
相关产品推荐

