Вызов неопределенного отношения [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;
}
}

0 ответов

Другие вопросы по тегам