Привет Я следовал учебник, и я получил вопрос об отображении объекта, на мой взгляд, называемый listing.blade.phpОтображение объекта с красноречивых
@extends('layouts.default')
@section('content')
@foreach($posts as $post)
<h1>{{{$post->title}}} By {{{$post->user->email }}}</h1>
@endforeach
@stop
Однако этот код не работает, потому что я получаю ошибка:
Trying to get property of non-object.
Причина, по которой я получаю эту ошибку, заключается в том, что переменная $ post представляет собой массив.
Так что этот код делает работу:
<h1>{{{$post->title}}} By {{{$post->user['email'] }}}</h1>
Но я не хочу использовать код обозначения выше меня. Я хотел бы использовать это:
<h1>{{{$post->title}}} By {{{$post->user->email }}}</h1>
Вот код моего контроллера называется PostController.php:
<?php
class PostController extends BaseController {
public function listing(){
$posts = Post::all();
return View::make('post/listing', compact('posts'));
}
}
А вот код моей модели называется Post.php:
<?php
class Post extends \Eloquent {
/*this holds all the fields that you can actually sit through
mass assignment */
protected $fillable = ['title', 'body'];
//we set a field 'user_id' that we don't want to be set through mass assignment.
// protected $guarded = ['user_id'];
public function user(){
return $this->belongsTo('User');
}
}
Также здесь код моей модели называется User.php (потому что это имеет отношение с post.php):
<?php
use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface {
use UserTrait, RemindableTrait;
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = array('password', 'remember_token');
public function posts(){
return $this->hasMany('Post');
}
}
Может кто-нибудь, пожалуйста, помогите мне с моим вопросом?
Он должен работать как объект. –
Да, я знаю, но это почему-то не так. Я действительно говорю правду. И если вы хотите, я могу записать себя, показывая этот код и вывод в моем браузере, если хотите. – superkytoz
Я бы предположил, что у одного из 'posts' нет связанных' user' –