la notvel

时间:2018-05-05 10:28:16

标签: php database laravel

我研究了网络,但无法找到解决问题的方法。

我无法从我的数据库中获取一个元素。

   <?php

namespace App;
use Illuminate\Support\Facades\DB;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Auth;
class Wishlist extends Model
{
    public $table = 'wishlist';
    public $fillable = ['book_id','user_id',];

    public function books() //one-to-many
    {
        return $this->hasMany('App\Book');
    }

    public function user()
    {
        return $this->belongsTo('App\User');
    }
    public static function myWishlist()   
    {
        $id = Auth::id();
        $wishlist = DB::table('users')->where('id', $id)->pluck('wishlist_id');
        $wishlist_id = User::where('id', $id)->pluck('wishlist_id'); 
        return Book::where('wishlist_id', $wishlist_id);
    }
}

如果我用力填写:'返回Book :: where('whishlist_id',1);'它正确显示。但是'wishlist'和'wishlist_id'都没有表现出来。

我很乐意得到帮助!

1 个答案:

答案 0 :(得分:0)

正如documentation of the pluck method所述。

  

pluck方法检索给定键的 所有值

pluck方法将返回array所有值&#39;弹出&#39;。

这意味着

User::where('id', $id)->pluck('wishlist_id'); 

将返回一个包含1个元素的数组,该元素是所需的wishlist_id

正确的语法如下:

User::where('id', $id)->pluck('wishlist_id')[0];

假设用户总是有wishlist_id