Попытка получить свойство не-объекта Laravel FORM - PullRequest
0 голосов
/ 04 октября 2019

Я создаю простое веб-приложение для вопросов и ответов с использованием Laravel, и я новичок в этом,

Так что есть пользователь, который отправляет ВОПРОС и позволяет кому-то ОТВЕТИТЬ на вопрос, мойпрогресс, я могу зарегистрироваться в качестве ПОЛЬЗОВАТЕЛЯ, опубликовать ВОПРОС, НО у меня проблемы с сохранением ОТВЕТА, вот мой код:

{!! Form::open(['action' => 'AnswersController@store', 'method' => 'POST'])!!}
 <div class="from-group">
 {{Form::label('answer', 'Answer')}}
 {{Form::textarea('answer', '', ['class' => 'form-control', 'placeholder' => 'type your answer here'])}} 
  <br>
 {{Form::submit('Submit Answer', ['class' => 'btn btn-primary'])}} 
 </div> 
{!! Form::close()!!} 

и вот его скриншот:
Скриншот пользовательского интерфейса

Теперь я хочу вставить ответ в свою базу данных, структура таблицы: структура таблицы базы данных

и вот моя функция Store измой контроллер:

public function store(Request $request)
    {
        $this->validate($request, [
            'answer' => 'required'
        ]); 
            $answer = new Answer;
            $answer->answer = $request->input('answer'); 
            $answer->question_id = $question_id;
            $answer->user_id = auth()->user()->id;
            $answer->save();

        return redirect('/answer/$question_id')->with('success', 'Answer Posted');
    }

Теперь, моя самая большая проблема, как я могу получить идентификатор вопроса? Каждый раз, когда я запускаю это, оно выдает мне ошибки:

Пытается получить свойство необъекта

И я думаю, что оно ссылается на "question_id"

1 Ответ

0 голосов
/ 04 октября 2019

В вашем коде есть неопределенный $question_id. Вы должны перенести свой идентификатор вопроса в свой запрос.

Самый простой (но не самый лучший) способ - добавить скрытый ввод с $question->id в форму:

{{ Form::hidden('question_id', $question->id) }}

И затем в контроллеревы должны получить идентификатор из запроса:

 $answer->question_id = $request->get('question_id');

PS Обратите внимание, что помощники по формам устарели с Laravel 5.x, поэтому для этого следует использовать обычную разметку HTML.

...