#laravel #laravel-backpack
#laravel #laravel-рюкзак
Вопрос:
У меня есть отношения » много ко многим» между таблицей shops
и users
.Итак, чтобы создать новый магазин, я хочу назначить пользователей для этого магазина, но у меня есть Error: Call to undefined method AppModelsShop::user()
ошибка, когда я пытаюсь создать новый магазин.
У меня есть внутренняя setupCreateOperation
функция в ShopCrudController
этом коде :
protected function setupCreateOperation()
{
CRUD::setValidation(ShopRequest::class);
$this->crud->addFields([
...
[
'name' => 'user_id',
'label' => 'Owners',
'type' => 'select2_multiple',
'entity' => 'user',
'attribute' => 'firstname',
'model' => "AppModelsUser",
'pivot' => true,
'options' => (function ($query) {
return $query->orderBy('name', 'ASC')->where('depth', 1)->get();
}),
],
]);
И магазин моделей :
<?php
namespace AppModels;
use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;
use BackpackCRUDappModelsTraitsCrudTrait;
class Shop extends Model
{
use HasFactory;
use CrudTrait;
...
public function users()
{
return $this->belongsToMany('AppModelsUser','shop_user')->withTimestamps();
}
}
И модель пользователя :
<?php
namespace AppModels;
use BackpackCRUDappModelsTraitsCrudTrait;
use ParentalHasParent;
use BackpackCRUDappNotificationsResetPasswordNotification as ResetPasswordNotification;
use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateNotificationsNotifiable;
use LaravelPassportHasApiTokens;
use SpatiePermissionTraitsHasRoles;
use IlluminateDatabaseEloquentFactoriesHasFactory;
class User extends Authenticatable
{
use Notifiable, HasApiTokens;
use HasParent;
use CrudTrait;
use HasRoles;
use HasFactory;
...
public function shops()
{
return $this->belongsToMany('AppModelsShop', 'shop_user')->withTimestamps();
}
}
Ответ №1:
Я допустил опечатку 'entity' => 'user'
вместо 'entity' => 'users'