Я получаю сообщение об ошибке при создании данных и передаче их в БД в laravel - PullRequest
0 голосов
/ 24 марта 2020

Это мой контроллер

  public function store_chapters()
  {
    $data = request()->validate([
        "name" => ['required'],
        "video" => ['required','file','mimes:mp4'],
        "description" => ['required'],
    ]); //dd($data);

    $video = request('video')->store('uploads','public'); //dd($video);

    subjects()->chapters()->create([
        'chapter_name' => $data['name'],
        'description' => $data['description'],
        'video' => $video,
    ]);

    return redirect('show_index');
 }

Секция обновления видео работает отлично, но моя проблема в том, что вы можете видеть выше функции, называемые subjects() и chapters(). Я должен вставить эти данные в таблицу глав, которая содержит следующее:

id subject_id глава_имя описание видео статус

, и у меня есть отдельная таблица, которая называется субъекты id, subject_name, status.

есть некоторые предметы в этой таблице, и когда я добавляю главу, принадлежащую определенному предмету, который должен быть добавлен в таблицу глав с правильными subject_id, но это не сработает, моя модель будет, Предмет. php

class Subject extends Model
{
   protected $guarded = [];

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

Глава. php

class Chapter extends Model
{
      protected $guarded = [];

  public function subjects()
  {
    return $this->hasMany('App\Chapter', 'subject_id'); 
  }
}

Пожалуйста, помогите мне разобраться в проблеме заранее, спасибо ..

1 Ответ

0 голосов
/ 24 марта 2020
<input type="hidden"  name="subject" value="{{$subject->id}}"> 

это должно быть добавлено на соответствующей странице просмотра

$chapter = Chapter::create([
        'name' => $data['name'],
        'description' => $data['description'],
        'video' => $video,
        'subject_id' => request('subject'),
        'status' => 1,
]);

, а subject_id должен быть получен из поля ввода, используя имя атрибута ..

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