如何在laravel查询构建器| Laravel中访问varible inWhere()

时间:2017-12-02 08:03:17

标签: php laravel laravel-5

我正在尝试构建一些复杂的查询,其中一切都 OK ,直到我尝试使用高级where条件。
在下面的代码中我收到错误说

  

ErrorException:未定义的变量:文件D中的用户:第285行的...... ** \ app \ Http \ Controllers \ ApiAuthController.php

并且{28}在$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的新手。这里的任何人都可以帮助我很棒。

2 个答案:

答案 0 :(得分:2)

您需要使用ionic cordova run browser -l 子句使闭包范围内的变量可访问。所以,改变这个:

use

对此:

->orWhere(function ($query) {

答案 1 :(得分:1)

我太懒了,无法链接其他100个帖子,这些帖子都是重复的。

PHP manual - anonymous functions示例#3