【问题标题】:Laravel 5.7: Database query returning no valuesLaravel 5.7:数据库查询不返回值
【发布时间】:2019-05-26 17:16:38
【问题描述】:

我正在尝试从我的 likes 表中检索一组帖子 ID,其中用户 ID 等于存储在 Auth Session 中的 ID。

到目前为止,我已经以多种方式测试了检索数据,如果我从表中选择所有喜欢它工作正常,从会话中检索到的身份验证 ID 与存储在喜欢表中的身份验证 ID 相同,因此应该产生匹配并返回数据。

这是我目前正在使用的代码:

    public function index()
    {

    $userid = Auth::id();

    $userLikes = likes::all()->pluck('post_id')->where('user_id', $userid);

    dd($userLikes);

    }

表格中的列名如下:

  • 身份证
  • created_at
  • updated_at
  • user_id
  • post_id

我已经尝试过这种编写查询的方法,但是遇到了同样的问题,没有错误,也没有数据。

DB::table('likes')->pluck('post_id')->where('user_id', $userid)->toArray(); 

我希望为登录用户喜欢的帖子提供一组帖子 ID,以便可以将其传递到视图中。

提前致谢

【问题讨论】:

    标签: php laravel eloquent laravel-5.7


    【解决方案1】:

    如果您已创建具有适当关系的 UserPostLike 模型,则可以执行以下操作:

    $ids = auth()->user()->likes->pluck('post_id')->toArray();
    

    模型的关系定义为:

    // User.php
    public function likes()
    {
        return $this->hasMany(Like::class);
    }
    
    public function posts()
    {
        return $this->hasMany(Post::class);
    }
    
    // Like.php
    public function user()
    {
        return $this->belongsTo(User::class);
    }    
    
    public function post()
    {
        return $this->belongsTo(Post::class);
    }   
    
    // Post.php
    public function user()
    {
        return $this->belongsTo(User::class);
    }
    
    public function likes()
    {
        return $this->hasMany(Like::class);
    }
    

    或者,使用查询构建器:

    DB::table('likes')->where('user_id', auth()->id())->get('post_id')->toArray(); 
    

    【讨论】:

      猜你喜欢
      • 2017-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-18
      • 2015-10-18
      相关资源
      最近更新 更多