在 Laravel 7 中调用未定义的方法 App\Role::lists()
Call to undefined method App\Role::lists() in Laravel 7
AdminUsersController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
use App\Role;
class AdminUsersController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
$users = User::all();
return view('admin.users.index',compact('users'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
$roles = Role::lists('name','id')->all();
return view('admin.users.create',compact('roles'));
}
}
admin.users.create.php
<x-admin>
@section('content')
<h1>Create Users</h1>
{!!Form::open(['method'=>'POST','action'=>'AdminUsersController@store'])!!}
<div class="form-group">
{!!Form::label('name','Name')!!}
{!!Form::text('name',null,['class'=>'form-control'])!!}
</div>
<div class="form-group">
{!!Form::label('role_id','Role')!!}
{!!Form::select('role_id',[''=>'Choose Options']+$roles,null,['class'=>'form-control'])!!}
</div>
<div class="form-group">
{!!Form::submit('Create User',['class'=>'btn btn-primary'])!!}
</div>
{!!Form::close()!!}
@endsection
</x-admin>
我试图在我的角色 Table 中获取角色名称并显示到 admin.users.create.php 中的 select 角色表单,但我的屏幕上出现此错误“调用undefined method App\Role::lists() in Laravel 7" ,如何修复 Laravel 7.
中的此类错误
lists deprecated since version Laravel 5.2
集合、查询生成器和 Eloquent 查询生成器对象上的 lists
方法已重命名为 pluck
。
$roles = Role::pluck('name', 'id');
AdminUsersController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
use App\Role;
class AdminUsersController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
$users = User::all();
return view('admin.users.index',compact('users'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
$roles = Role::lists('name','id')->all();
return view('admin.users.create',compact('roles'));
}
}
admin.users.create.php
<x-admin>
@section('content')
<h1>Create Users</h1>
{!!Form::open(['method'=>'POST','action'=>'AdminUsersController@store'])!!}
<div class="form-group">
{!!Form::label('name','Name')!!}
{!!Form::text('name',null,['class'=>'form-control'])!!}
</div>
<div class="form-group">
{!!Form::label('role_id','Role')!!}
{!!Form::select('role_id',[''=>'Choose Options']+$roles,null,['class'=>'form-control'])!!}
</div>
<div class="form-group">
{!!Form::submit('Create User',['class'=>'btn btn-primary'])!!}
</div>
{!!Form::close()!!}
@endsection
</x-admin>
我试图在我的角色 Table 中获取角色名称并显示到 admin.users.create.php 中的 select 角色表单,但我的屏幕上出现此错误“调用undefined method App\Role::lists() in Laravel 7" ,如何修复 Laravel 7.
中的此类错误lists deprecated since version Laravel 5.2
集合、查询生成器和 Eloquent 查询生成器对象上的 lists
方法已重命名为 pluck
。
$roles = Role::pluck('name', 'id');