gpt4 book ai didi

mysql - 优化 Laravel Eloquent?

转载 作者:行者123 更新时间:2023-11-29 16:08:43 26 4
gpt4 key购买 nike

我的 laravel 项目有一个有效的查询。有没有办法优化或缩短这段代码?

                $transaction = DB::connection('mysql')->table('pwn_transaction')
->join('pwn_transaction_has_details', 'pwn_transaction.ticket_number', '=', 'pwn_transaction_has_details.pwn_transaction_ticket_number')
->join('pwn_transaction_details', 'pwn_transaction_has_details.pwn_transaction_details_id', '=', 'pwn_transaction_details.id')
->join('pwn_transaction_has_transaction_items', 'pwn_transaction.ticket_number', '=', 'pwn_transaction_has_transaction_items.pwn_transaction_ticket_number')
->join('pwn_branch_has_transaction', 'pwn_transaction.ticket_number', '=', 'pwn_branch_has_transaction.pwn_transaction_ticket_number')

->join('pwn_transaction_has_customers', 'pwn_transaction.ticket_number', '=', 'pwn_transaction_has_customers.pwn_transaction_ticket_number')
->join('pwn_customers', 'pwn_transaction_has_customers.pwn_customers_id', '=', 'pwn_customers.id')
->groupBy('ticket_number')
->get();

最佳答案

首先,您需要阅读Laravel eloquent

例如。 Controller 中带有 Transaction 模型的简单代码

$transaction = Transaction::get();

您可以使用Eloquent Relationship在你的模型中

交易模型

public function items()
{
return $this->hasOne(TransactionItem::class); //based on your model and relationship
}

检索关系Constraining Eager Loads

$transaction = Transaction::with('items)->get();

Laravel 使用 mysql 作为默认连接或基于您的 config/database.php 文件

如果你想使用多个数据库,你可以使用类似的东西

在您的交易模型中定义以下行

protected $connection = 'your-connection-name';

根据您的评论

确保在Transaction模型中定义正确的关系

Transaction::with('hasDetails', 'details', 'branch', 'hasCustomers', 'customer')
->groupBy('ticket_number')
->where('ticket_number', $request->pawnTicket) //assume ticket_number column is inside the transactions table
->get();

关于mysql - 优化 Laravel Eloquent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55488449/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com