laravel 从控制器数组中获取值

laravel get value from array of controllers

这是我的PermissionController.php

foreach (Route::getRoutes() as $route)
{
    $action = $route->getAction();

    if (array_key_exists('controller', $action))
    {
       $controllers[] = $action['controller'];
    }
}
return view('permission.create')->withControllers($controllers);

我的permission/create/php是这样的:

{!! Form::select('class_name[]', $controllers, null, ['class' => 'form-control', 'multiple']) !!}

在控制器中,它将所有控制器的名称放在 $controller 中并将其发送到 blade 但是当我 select 其中一些时,请求将它们的密钥给我而不是值

public function store(Request $request)
{
    return $request->get('class_name');
}

如果我 select 第一个和第三个输出例如:{"1","3"} 但我希望他们的价值是这样的:{"UserController.php", "TestController.php"}

改用此代码 Forms::Select 或使用 Laravel 内置列表函数创建您的自定义列表:

<select name="class_name[]" multiple>
@foreach($controllers as $class)
    <option value="{{$class}}" >{{$class}}</option>
@endforeach
</select>

或者简单地替换

 $controllers[] = $action['controller'];

$controllers[$action['controller']] = $action['controller'];