首页 文章

Laravel表关系Dynamodb

提问于
浏览
0

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

这是我的动力学

users表:user_id |电子邮件|名字|密码帖子表:id |身体|用户身份

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

我只是简单地使用Auth :: user() - > user_id来获取用户ID并请求正文创建一个新的帖子项

但如何预告以下?

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

post.php中

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

user.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';
}

PostController.php

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

dashboard.blade.php

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

        @endforeach

加载仪表板页面时出错

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

但它只适用于$ post-> body谢谢!

1 回答

  • 0

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

    提到的关系是不正确的

    Post Model :

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

    User Model

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

相关问题