Laravel: Попытка получить свойство необъекта при получении данных через внешний ключ - PullRequest
0 голосов
/ 16 октября 2018

У меня есть модель User и Tag.Оба связаны отношением 1: N.

Я пытаюсь взять col tag_name из user модели.Однако я получаю эту ошибку:

Попытка получить Попытка получить свойство 'tag_name' не-объекта.

Модель пользователя имеет

 // linking with table tag
public function tags(){
    return $this->hasMany('App\Tag');
}

У модели тега есть

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

У моего вида есть

 {{ Form::checkbox('tag[]',$user->tag_id,['class'=>'cats']) }}
 {{ Form::label('tb',$user->tag_id->tag_name,['class'=>'btn btncategory']) }}

Контроллер имеет следующие функции индекса

 $user = User::find($user_id);
 return view('user.create_post')->with('user', $user );

Маршрут:

Route::get('create', 'PostsController@index');

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

Заранее спасибо.

1 Ответ

0 голосов
/ 16 октября 2018

Проблема в том, что у вашего user есть несколько tags, вам нужно пройти через каждый из них:

В блейд-файле:

@foreach ($user->tags as $tag) 
    <label class="btn btncategory">
        <input type="checkbox" name=tag[] value="{{$tag->id}}" class="cats" />
        {{$tag->name}}
    </label>
@endforeach

Теперь, когда вы отправляете это, выдолжны иметь все отмеченные теги в массиве request()->input('tag')

Примечание. Я удалил Form::, потому что мне нравится устанавливать флажки внутри метки, но вы можете просто использовать стиль Form::, если хотитениже:

@foreach ($user->tags as $tag) 
   {{ Form::checkbox('tag[]',$tag->id,['class' => 'cats']) }}
   {{ Form::label('tb',$tag->name,['class' => 'btn btncategory']) }}
@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...