Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.5:将查询生成器转换为雄辩的_Php_Laravel_Laravel Eloquent_Laravel 5.5_Laravel Query Builder - Fatal编程技术网

Php Laravel 5.5:将查询生成器转换为雄辩的

Php Laravel 5.5:将查询生成器转换为雄辩的,php,laravel,laravel-eloquent,laravel-5.5,laravel-query-builder,Php,Laravel,Laravel Eloquent,Laravel 5.5,Laravel Query Builder,有没有办法将此查询生成器转换为雄辩的 $transactions = DB::table('transactions') ->join('accounts', 'transactions.account_id', '=', 'accounts.id') ->select('transactions.*', 'accounts.name as account_name') ->paginate(5); 我尝试了一对多的方法。但是它需要find()函数,所

有没有办法将此查询生成器转换为雄辩的

$transactions = DB::table('transactions')
    ->join('accounts', 'transactions.account_id', '=', 'accounts.id')
    ->select('transactions.*', 'accounts.name as account_name')
    ->paginate(5);

我尝试了一对多的方法。但是它需要
find()
函数,所以它会给我一个帐户的交易,但我需要选择所有帐户的交易。name

您需要使用模型来完成这项工作

  • 交易模型和账户模型

  • 定义他们的关系

  • 在事务模型中创建一个方法来检索相关的帐户名

    函数accountnames(){//blabla}

  • 在controller中执行查询,类似于:

    交易->账户名称()


  • 在评论中,您说过您已经定义了一对多关系(我假设它的帐户有许多事务),并且您需要使用帐户名获取所有事务,所以请执行以下操作:

    Transaction::with('account')->paginate(5);
    
    其中,
    科目
    是关系:

    public function account()
    {
        return $this->belongsTo(Account::class);
    }
    
    然后您将能够如下所示显示数据:

    @foreach ($transactions as $transaction)
        {{ $transaction->id }}
        {{ $transaction->account->name }}
    @endforeach
    

    对使用关系:是的,我知道,但如何使用?:)我试过一对多。但是它需要
    find()
    函数。我需要选择accounts.name的所有事务我在
    Transaction::accountNames()中遇到此错误非静态方法App\Transaction::accountNames()不应该被静态调用对不起,我的错误是,该方法应该在实例上调用,不是::但是->像这样吗<代码>$transactions=交易->账户名称()我得到了这个错误:)解析错误:语法错误,意外的'->'(T_OBJECT_操作符)这很有效!这就是我要找的
    {{$transaction->account->name}
    。非常感谢@alexey mezenin:)