为什么我收到此错误?我该如何解决这个问题呢?我试图检索用户的帖子。
User.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('Posts');
}
}
Post.php模型
<?php
Class Posts extends Eloquent
{
public function User()
{
return $this->belongsTo('User');
}
}
我猜错误在于Posts.php
模型。
控制器
public function newPost($id)
{
$user = User::findOrFail($id);
$post = new Posts();
$post->title = Input::get('title');
$post->content = nl2br(Input::get('content'));
$user->post()->save($post);
return Redirect::route('profile', array('id' => $user->id));
}
查看
@section('post')
<section>
@foreach($users->posts as $post)
<p>{{$user->name}} says...</p>
<blockquote>{{$post->content}}</blockquote>
@endforeach
</section>
@stop
答案 0 :(得分:0)
Laravel使用了很多约定优于配置,因此请确保您的约定正确。
如果您的课程为Posts
,请确保您的文件名为Posts.php
。你的问题是它提到了两种方式。
您对该用户的关系方法为Post()
(大写),但您以$user->post()
(小写)的形式访问它。确保您的命名和使用一致。