我对我的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();发布于 2019-04-03 06:41:38
首先,您需要阅读拉勒维尔雄辩
例如:控制器中带有Transaction模型的简单代码
$transaction = Transaction::get();您可以在模型中使用雄辩关系
事务模型
public function items()
{
return $this->hasOne(TransactionItem::class); //based on your model and relationship
}用关系约束期望载荷检索
$transaction = Transaction::with('items)->get();Laravel使用mysql作为默认连接或基于config/database.php文件
如果您想使用多个数据库,您可以使用类似的方法。
在Transaction模型中定义下面一行
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();https://stackoverflow.com/questions/55488449
复制相似问题