Не могу добавить поле с другого стола в ларель-рюкзак 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 ответ
Решение
У меня было неправильное зрение о Полях Рюкзака.
Это работает с пользовательским типом представления.