【发布时间】:2018-05-16 07:04:44
【问题描述】:
在我尝试使用高级 where 条件之前,我正在尝试构建一点复杂的查询,其中一切都OK。
在下面的代码中,我收到一条错误消息
ErrorException: Undefined variable: user in file D:...**\app\Http\Controllers\ApiAuthController.php on line 285
第 285 行是 $query->where("tbl_transactions.from_user_id", "=", $user->id) 内的 orWhere()
public function loadTransactions()
{
$token = JWTAuth::getToken();
$user = JWTAuth::toUser($token);
return DB::table('tbl_transactions')
->join('tbl_users as fromu', 'fromu.id', '=', 'tbl_transactions.from_user_id')
->join('tbl_users as tou', 'tou.id', '=', 'tbl_transactions.to_user_id')
->select('tbl_transactions.id', 'tbl_transactions.from_user_id', 'tbl_transactions.to_user_id', 'tbl_transactions.amount', 'tbl_transactions.created_at', 'tbl_transactions.status', 'fromu.userid', 'tou.userid', 'tou.phone as tophone', 'fromu.phone as fromphone')
->orWhere(function ($query) {
$query->where("tbl_transactions.from_user_id", "=", $user->id)// here the problem is (undefined **$user**)
->where('tbl_transactions.to_user_id', '=', $user->id);
})
->orderBy('tbl_transactions.id', 'desc')
->take(50)
->get();
}
我是 laravel 的新手。这里的任何人都可以帮助我。
【问题讨论】:
-
仅在这个网站上就被回答了一百万次......这是一个匿名函数的范围问题......与 laravel 或任何软件库完全无关。