Невозможно создать сообщение - PullRequest
0 голосов
/ 31 марта 2020

Я не могу создать пост, я новичок, поэтому заранее извиняюсь, если мой вопрос звучит глупо

Вот изображение моей формы, прежде чем нажать кнопку Отправить: - enter image description here

Вот картинка после удара Отправить: - enter image description here

Не могу найти ни одного ошибка

Вот мой контроллер: -

  public function store(Request $request)
    {
      $data = request()->validate([
        'title' => 'required',
        'body' => 'required',
      ]);

       auth()->user()->profile()->post()->create($data
       );
       return redirect('/h');

И мне нужно передать в нем "user_id"

Пожалуйста Помощь и Спасибо заранее

1 Ответ

1 голос
/ 01 апреля 2020

Проверка вашего контроллера выглядит правильно.

Вы будете перенаправлены обратно на свою форму, так как запрос не содержит значений 'title' и 'body'. Эти значения являются «обязательными» в соответствии с вашим массивом проверки.

Добавьте эту строку в контроллер для отладки и посмотрите, что на самом деле содержит запрос:

dd(request()->all());

In на ваш взгляд, убедитесь, что у ваших html форм форм ввода правильно установлены соответствующие атрибуты имени:

<form method="POST" action="/your-route">
  @csrf
  <input name="title" ...>
  <input name="body" ...>
</form>

И чтобы ответить на ваш последний вопрос: Нет, вам не нужно добавлять user_id в ваш массив $ data; Laravel сделает это за вас, так как вы соединяете метод create () из аутентифицированного пользовательского экземпляра с этой строкой: auth()->user()->profile()->post()->create($data);

Вы также можете вызывать метод create () непосредственно из класса Post, в этом случае должен быть указан user_id:

Post::create([
    'user_id' => 1,
    'title' => 'My title',
    'body' => 'My body',
]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...