рюкзак для отношений и поле выбора нескольких полей - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть три стола, номера , номера и гостиничные_ номера .

В комнатах у меня есть поля id и room_name, а также поля для создания / изменения меток времени и другие поля настроек.

Третья таблица - это таблица внешних ссылок, с двумя hostingod__id и room_id полей.

Как объяснено здесь: https://laravel.com/docs/5.7/eloquent-relationships#many-to-many Я явно настраиваю метод номеров в своей модели размещения:

    public function rooms()
    {
        return $this->belongsToMany('App\Models\Room', 'accomodation_rooms', 'accomodation_id', 'room_id');
    }

Затем я пытаюсьнастроить поле следующим образом:

    $room = [
        [       // Select2Multiple = n-n relationship (with pivot table)
        'label' => "Rooms",
        'type' => 'select2_multiple',
        'name' => 'rooms', // the method that defines the relationship in your Model
        'entity' => 'rooms', // the method that defines the relationship in your Model
        'attribute' => 'room_name', // foreign key attribute that is shown to user
        'model' => "App\Models\Rooms", // foreign key model
        'pivot' => true, // on create&update, do you need to add/delete pivot table entries?
        ]
    ];

    $this->crud->addField($room);

Но я получаю следующую ошибку на vendor / backpack / crud / src / PanelTraits / Fields.php, строка 37:

Undefinedindex: name

где у меня есть этот код:

    // if the label is missing, we should set it
    if (! isset($completeFieldsArray['label'])) {
        $completeFieldsArray['label'] = mb_ucfirst(str_replace('_', ' ', $completeFieldsArray['name']));
    }

Пожалуйста, помогите.

Laravel 5,7, backpackforlaravel 3.5.

1 Ответ

0 голосов
/ 07 февраля 2019

Я наконец-то получил ошибку опечатки.Массив определения поля должен быть более простым, без одного уровня квадратных скобок.

$room = [ // Select2Multiple = n-n relationship (with pivot table)
    'label' => "Rooms",
    'type' => 'select2_multiple',
    'name' => 'rooms', // the method that defines the relationship in your Model
    'entity' => 'rooms', // the method that defines the relationship in your Model
    'attribute' => 'room_name', // foreign key attribute that is shown to user
    'model' => "App\Models\Rooms", // foreign key model
    'pivot' => true, // on create&update, do you need to add/delete pivot table entries?
];
...