Создание записи данных для структуры категорий «один ко многим» с помощью Laravel - PullRequest
0 голосов
/ 24 мая 2019

Я новичок здесь. С Laravel я хочу сохранить данные с несколькими функциями выбора. однако методы в файле модели, который я создал, не отображаются. Я новичок в личинках, как я могу это исправить? Я не смог запустить функцию множественного выбора.

Метод в контроллере

public function saveForm()
{
    $movi_name = $req->input('movi_name');
    $release_date = $req->input('release_date');

    $data = array(
        'movi_name'    => $movi_name,
        'release_date' => $release_date
    );

    $categories = request(categories);

    $entry = Movie::insert($data) /*Model File and Save Data*/

    $entry->categories()->attach($categories);
}

Метод в моем файле модели

protected $table = 'film';

public function categories()
{
    return $this->belongsToMany('App\Models\Kategori', 'category_movie');   
}

должно быть, что выбранные фильмы должны быть включены в категории .. Но

вызов категории функций-членов () в логическом

Извините за плохой английский

Ответы [ 2 ]

1 голос
/ 24 мая 2019

Как уже упоминалось в комментариях, вы должны использовать create() вместо insert().

Использование insert() просто вернет true или false в зависимости от того, был ли запрос успешным или нет.

Использование create() вернет экземпляр модели Movie, в котором будет использоваться метод categories():

$entry = Movie::create($data); //<--This is where insert() is replaced with create()

$entry->categories()->attach($categories);

Вам необходимо убедиться, что movi_name и release_date находятся в массиве $fillable в вашей Movie модели:

protected $fillable = ['movi_name', 'release_date'];
0 голосов
/ 24 мая 2019

да, я решил проблему

protected $fillable = ['movie_name'];

, это был мой код.

теперь, когда

protected $fillable = ['movie_name','release_date'];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...