Вызов неопределенного отношения [product_type] для модели [App\\Models\\MageProduct]
Я очень новичок с Laravel и Laravel рюкзаком. Я установил вчера демо-версию, и я пытаюсь создать свой первый Crud.
Мой crud будет состоять из 6 зависимых выпадающих списков выбранных баз данных и одного поля.
Я отключил 6 из моих полей для тестирования только с одним выпадающим списком "product_type_id".
Я создал в соответствии с документацией:
Модель таблиц базы данных Пункт меню "Маршрут контроллера"
Когда я загружаю свой CRUD, мой CRUD загружается, но я получаю эту ошибку: "Ошибка загрузки страницы. Пожалуйста, обновите страницу ". С помощью функции Chrome Inspect я вижу, что Search POST генерирует ошибку:
"message": "Вызов неопределенного отношения [product_type] для модели [App\Models\MageProduct]."
Что бы я ни пытался, я всегда получаю эту ошибку. Я, конечно, что-то упускаю, поэтому я был бы признателен за помощь здесь. Я, конечно, прочитал другие похожие проблемы, связанные с неопределенными отношениями в Stackru, но не смог решить их самостоятельно. Пожалуйста, найдите здесь мои модели и контроллер. Заранее спасибо за поддержку, ура, Марк
МОДЕЛЬ MAGEPRODUCT
<?php
namespace App\Models;
use Backpack\CRUD\CrudTrait;
use Backpack\CRUD\ModelTraits\SpatieTranslatable\HasTranslations;
use Illuminate\Database\Eloquent\Model;
use App\models\MageProductType;
class MageProduct extends Model
{
use CrudTrait;
use HasTranslations;
/*
|--------------------------------------------------------------------------
| GLOBAL VARIABLES
|--------------------------------------------------------------------------
*/
protected $table = 'mage_products';
protected $primaryKey = 'id';
public $timestamps = true;
// protected $guarded = ['id'];
protected $fillable = ['product_type_id'];
// protected $hidden = [];
// protected $dates = [];
// public $translatable = [];
/*
|--------------------------------------------------------------------------
| FUNCTIONS
|--------------------------------------------------------------------------
*/
/*
|--------------------------------------------------------------------------
| RELATIONS
|--------------------------------------------------------------------------
*/
public function ProductTypes()
{
return $this->hasMany('App\Models\MageProductType', 'product_type_id');
// return $this->hasMany(MageProductType::class);
}
/*
|--------------------------------------------------------------------------
| SCOPES
|--------------------------------------------------------------------------
*/
/*
|--------------------------------------------------------------------------
| ACCESORS
|--------------------------------------------------------------------------
*/
/*
|--------------------------------------------------------------------------
| MUTATORS
|--------------------------------------------------------------------------
*/
}
МОДЕЛЬ MAGEPRODUCTTYPE
<?php
namespace App\Models;
use Backpack\CRUD\CrudTrait;
use Illuminate\Database\Eloquent\Model;
use App\models\MageProduct;
class MageProductType extends Model
{
use CrudTrait;
/*
|--------------------------------------------------------------------------
| GLOBAL VARIABLES
|--------------------------------------------------------------------------
*/
protected $table = 'mage_product_types';
protected $primaryKey = 'id';
// protected $guarded = [];
// protected $hidden = ['id'];
protected $fillable = ['product_type'];
public $timestamps = true;
/*
|--------------------------------------------------------------------------
| FUNCTIONS
|--------------------------------------------------------------------------
*/
/*
|--------------------------------------------------------------------------
| RELATIONS
|--------------------------------------------------------------------------
*/
/*
|--------------------------------------------------------------------------
| SCOPES
|--------------------------------------------------------------------------
*/
/*
|--------------------------------------------------------------------------
| ACCESORS
|--------------------------------------------------------------------------
*/
/*
|--------------------------------------------------------------------------
| MUTATORS
|--------------------------------------------------------------------------
*/
}
КОНТРОЛЛЕР
<?php
namespace App\Http\Controllers\Admin;
// use App\Http\Requests\TagRequest as StoreRequest;
// VALIDATION: change the requests to match your own file names if you need form validation
// use App\Http\Requests\TagRequest as UpdateRequest;
use Backpack\CRUD\app\Http\Controllers\CrudController;
use App\Models\MageProductType;
class MageProductCrudController extends CrudController
{
public function setup()
{
/*
|--------------------------------------------------------------------------
| CrudPanel Basic Information
|--------------------------------------------------------------------------
*/
$this->crud->setModel('App\Models\MageProduct');
$this->crud->setRoute(config('backpack.base.route_prefix').'/produit');
// $this->crud->setRoute("admin/produitsmage");
$this->crud->setEntityNameStrings('produit', 'produits');
// $this->crud->enableAjaxTable();
/*
|--------------------------------------------------------------------------
| BASIC CRUD INFORMATION
|--------------------------------------------------------------------------
*/
// ------ CRUD COLUMNS
$this->crud->addColumn([
'label' => 'Type',
'type' => 'select',
'name' => 'product_type_id',
'entity' => 'product_type',
'model' => 'App\Models\MageProductType',
]);
// ------ CRUD FIELDS
$this->crud->addField([ // SELECT
'label' => 'Type',
'type' => 'select',
'name' => 'product_type_id',
'entity' => 'product_type',
'attribute' => 'product_type',
'model' => 'App\Models\MageProductType',
]);
}
public function store(StoreRequest $request)
{
// your additional operations before save here
$redirect_location = parent::storeCrud($request);
// your additional operations after save here
// use $this->data['entry'] or $this->crud->entry
return $redirect_location;
}
public function update(UpdateRequest $request)
{
// your additional operations before save here
$redirect_location = parent::updateCrud($request);
// your additional operations after save here
// use $this->data['entry'] or $this->crud->entry
return $redirect_location;
}
}