[英]backpack tells me the following error Call to undefined method App \ Models \ User :: identifiableAttribute () and I don't know why?
我的背包问题是下一个问题。 我已经在我的 laravel 8 项目中安装了背包,并且在生成所有 crud 时。 它不能正常工作,它告诉我以下错误:
Call to undefined method App \ Models \ User :: identifiableAttribute ()
而且我不知道如何解决它,我已经尝试过改变关系和其他方法但它不起作用这些是我的模型
用户 model :
<?php
namespace App\Models;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable
{
use HasFactory, Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name',
'email',
'password',
'url_avatar',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password',
'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
并且报告 model ,报告 model 与用户和帖子有关系:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use App\Models\User;
use App\Models\Post;
class Report extends Model
{
use \Backpack\CRUD\app\Models\Traits\CrudTrait;
use HasFactory;
protected $fillable = [
'user_id','post_id', 'user_reported_id','name_user','email_user','name_user_reported','email_user_reported'
];
protected $table='reports';
public func`enter code here`tion user(){
return $this->belongsTo(User::class);
}
public function post(){
return $this->belongsTo(Post::class);
}
}
这就是Backpack 为我生成的东西,粗鲁:
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Requests\ReportRequest;
use Backpack\CRUD\app\Http\Controllers\CrudController;
use Backpack\CRUD\app\Library\CrudPanel\CrudPanelFacade as CRUD;
/**
* Class ReportCrudController
* @package App\Http\Controllers\Admin
* @property-read \Backpack\CRUD\app\Library\CrudPanel\CrudPanel $crud
*/
class ReportCrudController extends CrudController
{
use \Backpack\CRUD\app\Http\Controllers\Operations\ListOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\ShowOperation;
/**
* Configure the CrudPanel object. Apply settings to all operations.
*
* @return void
*/
public function setup()
{
CRUD::setModel(\App\Models\Report::class);
CRUD::setRoute(config('backpack.base.route_prefix') . '/report');
CRUD::setEntityNameStrings('report', 'reports');
}
/**
* Define what happens when the List operation is loaded.
*
* @see https://backpackforlaravel.com/docs/crud-operation-list-entries
* @return void
*/
protected function setupListOperation()
{
CRUD::column('user_id');
CRUD::column('post_id');
CRUD::column('user_reported_id');
CRUD::column('name_user');
CRUD::column('email_user');
CRUD::column('name_user_reported');
CRUD::column('email_user_reported');
/**
* Columns can be defined using the fluent syntax or array syntax:
* - CRUD::column('price')->type('number');
* - CRUD::addColumn(['name' => 'price', 'type' => 'number']);
*/
}
/**
* Define what happens when the Create operation is loaded.
*
* @see https://backpackforlaravel.com/docs/crud-operation-create
* @return void
*/
protected function setupCreateOperation()
{
CRUD::setValidation(ReportRequest::class);
CRUD::field('user_id');
CRUD::field('post_id');
CRUD::field('user_reported_id');
CRUD::field('name_user');
CRUD::field('email_user');
CRUD::field('name_user_reported');
CRUD::field('email_user_reported');
/**
* Fields can be defined using the fluent syntax or array syntax:
* - CRUD::field('price')->type('number');
* - CRUD::addField(['name' => 'price', 'type' => 'number']));
*/
}
/**
* Define what happens when the Update operation is loaded.
*
* @see https://backpackforlaravel.com/docs/crud-operation-update
* @return void
*/
protected function setupUpdateOperation()
{
$this->setupCreateOperation();
}
}
当我 go 到 os 部分报告背包时它不起作用我的错误是下一个:
Call to undefined method App\Models\User::identifiableAttribute() (View: D:\mydir\vendor\backpack\crud\src\resources\views\crud\columns\select.blade.php)
هذه الطريقة الصحيحةici
<!DOCTYPE><?php
namespace App\Models;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable { use HasFactory, Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [ 'name', 'email', 'password', 'url_avatar', ];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [ 'password', 'remember_token', ];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.