提问者:小点点

Laravel表关系Dynamodb


我有一个问题,我想在一个页面中显示所有帖子

这是我的发电机

用户表:用户id |电子邮件|名称|密码

帖子表:id|身体|user_id

user_id我链接,所以一个用户有很多帖子。

我只是简单地使用Auth::user()-

但如何做到以下几点呢?

姓名(来自用户):正文(来自帖子)

邮递php

class Post extends \BaoPham\DynamoDb\DynamoDbModel
{
    public function user()
    {
        return $this->belongsTo('App\User');
    }
    protected $table = 'posts';
    protected $fillable = array('id');
}

使用者php

class User extends \BaoPham\DynamoDb\DynamoDbModel implements Authenticatable
{
    use \Illuminate\Auth\Authenticatable;    
    public function posts()
    {    
        return $this->hasMany('App\Post');
    }    
    protected $table = 'users';
    protected $fillable = array('email');
    protected $primaryKey = 'user_id';
}

后置控制器。php

 class PostController extends Controller
    {
        public function getDashboard()
        {
            $posts = Post::all();        
            return view('dashboard', ['posts' => $posts]);
        }

仪表板刀身php

@foreach($posts as $post)               
                <p>{{ $post->body }}</p>
                    by {{ $post->users->name}}                  

        @endforeach

加载仪表板页面时出错

尝试获取非对象的属性(视图:resources\views\dashboard.blade.php)

但它只使用$post-


共1个答案

匿名用户

实际上在laravel表中应该有id作为主键。

上述关系不正确

后模型:

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

用户模型

public function posts()
{    
    return $this->hasMany('App\Post','user_id','user_id');
}