я хочу сохранить идентификатор ресторана при сохранении моего блэйда обзора - PullRequest
0 голосов
/ 10 июля 2019

Я создал обзорный блейд для ресторанов, он мне нужен для сохранения идентификатора ресторана. У меня есть переменная restaurant_id, в которой хранится комментарий к обзору ресторанов. Это мой обзорный блейд

<html>
 {!!Form::open(['action' =['ReviewsController@store'],'method'=>'POST','enctype'=>'multipart/form-data'])!!}
    <div class="form-group"> 

    {{Form::textarea('value',null,['id'=>'value','placeholder'=>'Insert 
    here','name'=>'value'])}}
    </div>
    {{Form::submit('submit',['class'=>'btn btn- 
    primary','type'=>'submit','id'=>'submit'])}}
    {!!Form::close()!!}


     </html>

У меня также есть user_id, который хранит идентификатор текущего пользователя, вошедшего в систему, но выдает ошибку ErrorException (E_NOTICE) Попытка получить свойство 'id' необъекта Это функция контроллера обзора, которая хранит обзор

public function store(Request $request )
    {


 // $restaurant=Restaurant::find($id);
    $review=new Review;
    $review->user_id=auth()->user()->id;
    $review->restaurant_id=$request->route('id');
    $review->value=$request->input('value');
    $review->save();
    }

Это ссылка на шаблон бланка обзора в ресторане

<a href="{{ route('restaurants.review',$restaurant->id)}}">Add review</a>

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Ваш код, а именно:

auth()->user()->id;

, предполагает, что аутентифицированный пользователь всегда существует.В настоящее время его нет, поэтому вы:

Trying to get property 'id' of non-object

, поскольку auth()->user() не является объектом и вы пытаетесь получить свойство id от него.

Вам нужно будет выполнить какую-то проверку подлинности, если вы хотите, чтобы только прошедшие проверку пользователи выполняли то, что вы хотите.

public function store(Request $request)
{
    if (! Auth::check() {
        // Do something here if the user isn't authenticated, such as
        // return back()->withInput();
    }

    $review = new Review;
    $review->user_id = auth()->user()->id;
    $review->restaurant_id = $request->route('id');
    $review->value=$request->input('value');
    $review->save();
}
0 голосов
/ 10 июля 2019
$review->user_id=auth()->user()->id;

В этой строке предполагается наличие зарегистрированного пользователя.Если ваше приложение поддерживает отзывы от пользователей, не прошедших проверку подлинности, вам необходимо учитывать, что auth()->user() является нулевым, а не объектом User:

$review->user_id = auth()->user() ? auth()->user()->id : null;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...