Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 13.01.2018 18:25:40

factory ошибка связанных таблиц

Всем привет,
В модели app/User.php прописан :

    public function userChatMessages()
    {
        return $this->hasMany('App\UserChatMessage');
    }

В модели app/UserChatMessage.php прописан :

public function user(){
    return $this->belongsTo('App\User', 'user_id','id');
} 

И выполняя фактори :

                foreach( $users as $next_key=>$nextUser ) {
                    $nextUser->userChatMessages()->save( factory( App\UserChatMessage::class, 5 )->make() ); // line 52 with error !
                }

               
Получаю ошибку :               

                                                                                                                                                                                                                                            
  Type error: Argument 1 passed to Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() must be an instance of Illuminate\Database\Eloquent\Model, instance of Illuminate\Database\Eloquent\Collection given, called in /mnt/_work_  
  sdb8/wwwroot/lar/tasks/database/migrations/2018_01_13_135147_add_faker_data_user_chat_messages.php on line 52      

Причем этой ошибки нет если написать без указания колва строк сообщений:

                    $nextUser->userChatMessages()->save( factory( App\UserChatMessage::class )->make() ); // Создана одна строка

В чем проблема и как исправить ?

Спасибо !

Не в сети

#2 13.01.2018 19:41:47

Re: factory ошибка связанных таблиц

Ты коллекцию вместо модели передаешь. Замени:

factory(App\UserChatMessage::class, 5 )->make()

На:

factory(App\UserChatMessage::class)->make()

Не в сети

Подвал раздела