Не могу добавить поле с другого стола в ларель-рюкзак CRUD

Я имею libraries, townships а также states таблицы в базе данных (Library, Township, State как названия моделей). Library 1-н до Township,

в Library ,

public function township(){
    return $this->belongsTo('App\Township', 'township_id');
  }

в Township модель

public function libraries(){
        return $this->hasMany('App\Library');
    }

А также Township 1-н до State,

в Township модель

public function state()  {
        return $this->belongsTo('App\State', 'state_id');
    }

в State модель

public function townships(){
        return $this->hasMany('App\Township');
    }

В форме создания библиотеки мне нужно получить все строки из State и заполните его, чтобы выбрать поле 2. Конечно, есть еще одно окно выбора для Township, Это значение изменится на выбранном State,

Итак, вопрос в том, что мне нужно добавить поле в моем LibraryCrudController.php

$this->crud->addField([
     'label' => 'State',
     'type' => 'select2',
     'name' => 'state_id', //Should From Township Model. But how?
     'entity' => 'state',
     'attribute' => 'name',
     'model' => "App\State",
   ]);

Если я сделал это, ошибка

ErrorException in SchemaException.php line 86:
There is no column with name 'state_id' on table 'libraries'. (View: /home/zugor/code/backpack-crud/vendor/backpack/crud/src/resources/views/fields/select2.blade.php) (View: /home/zugor/code/backpack-crud/vendor/backpack/crud/src/resources/views/fields/select2.blade.php) (View: /home/zugor/code/backpack-crud/vendor/backpack/crud/src/resources/views/fields/select2.blade.php) (View: /home/zugor/code/backpack-crud/vendor/backpack/crud/src/resources/views/fields/select2.blade.php)

Есть ли решение для этого? Я много искал, но не нашел ни одного.

1 ответ

Решение

У меня было неправильное зрение о Полях Рюкзака.

Это работает с пользовательским типом представления.

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