我研究了网络,但无法找到解决问题的方法。
我无法从我的数据库中获取一个元素。
<?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'都没有表现出来。
我很乐意得到帮助!
答案 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
。