рюкзак для laravel Добавить столбец из связанной таблицы

У меня есть таблицы 3, параметры оборудования (идентификатор, имя) (идентификатор, имя) и сводная таблица параметр_оборудования (идентификатор_оборудования, идентификатор_параметра), в моем представлении списка «Оборудование» мне нужно добавить столбец с именем параметра, поэтому я необходимо получить имя из таблицы параметров.

Модель оборудования:

 public function parametros(){

   return $this->belongsToMany('App\Parametro','equipo_parametro','equipo_id',
                             'parametro_id')->withTimestamps();
}

Модель параметра:

public function equipos(){

   return $this->belongsToMany('App\Equipo','equipo_parametro','parametro_id',
                               'equipo_id')->withTimestamps();
}

Я добавил это на equipmentCrudcontroller, но безуспешно.

  $this->crud->addColumn([  // Select
    'label' => 'Parametro',
    'type' => 'select2',
    'name' => 'equipo_id', // the db column for the foreign key 
 (not sure here since equipment foreign key is on pivot table????)
    'entity' => 'parametros', // the method that defines the relationship in your Model
    'attribute' => 'nombre', // foreign key attribute that is shown to user
    'model' => "App\Parametro" // (doubt, there's a pivot table inbetween???) foreign key model
    ]);

person Rodrigo Cabrera    schedule 12.06.2017    source источник


Ответы (1)


Если вы добавляете столбец и уже выполнили предыдущую миграцию, вы можете создать новую миграцию php artisan make:migration update_equipment_table внутри нее, затем вы можете сделать что-то вроде этого

Schema::table('table', function (Blueprint $table) {
    $table->string('column');
});

затем повторно запустите миграции php artisan migrate, это добавит новый столбец в вашу таблицу.

person prola    schedule 12.06.2017
comment
не совсем так, столбец существует в другой таблице, я нашел решение, вместо использования 'type' = ›'select2' нужно использовать select_multiple, чтобы теперь он мог отображать имя в другой таблице - person Rodrigo Cabrera; 13.06.2017