Прежде всего, когда вы создаете миграции для обеих таблиц, таблица, содержащая внешний ключ (FK), должна иметь такое поле:
public function up(){
$table->increments('id');
$table->integer('customerID')->unsigned();
}
После этого вам нужно вызвать следующую команду в консоли
php artisan migrate
Далее идут следующие команды:
php arisan backpack:crud customers
php arisan backpack:crud transactions
После этого вам нужно определить функции в моделях, которые возвращают значения из других таблиц. Модели клиентов должны иметь следующую функцию
public function transactions(){
return $this->hasMany('Transaction');
}
Модель транзакции должна иметь следующую функцию
public function customer() {
return $this->belongsTo('Customer');
}
Затем вы должны добавить поле CRUD в контроллер клиента, чтобы отображать транзакции в поле выбора.
$this->crud->addField([
'label' => 'Transactions', // Label for HTML form field
'type' => 'select2', // HTML element which displaying transactions
'name' => 'customerID', // Table column which is FK for Customer table
'entity'=> 'customer', // Function (method) in Customer model which return transactions
'attribute' => 'ID', // Column which user see in select box
'model' => 'Transaction' // Model which contain FK
]);
Надеюсь это поможет :)
person
Nenad Živanović
schedule
01.09.2016