gpt4 book ai didi

php - 用 Laravel 和两个 WHERE 条件查询两个表

转载 作者:行者123 更新时间:2023-12-01 00:39:19 24 4
gpt4 key购买 nike

我有表 orders 和表 payments。我想查询表 orders,加入表 payments 并显示订单已支付,哪些未支付。

这是订单模型

class Order extends Eloquent {
protected $table = 'orders';
protected $primaryKey = 'order_id';

public function paidorders() {
return $this->hasMany('payments', 'processed');
}
}

这是支付模式

class Payment extends Eloquent {
protected $table = 'payments';
protected $primaryKey = 'paymentID';

public function orders()
{
return $this->hasMany('Order', 'user_id');
}
}

和用户模型

public function orders() {
return $this->hasMany('Order', 'user_id');
}

这就是我仅显示当前订单的方式,没有状态为已付款/未付款。

  $orders = self::$user->orders()->get();
return View::make('site.users.orders', [
'orders' => $orders
]);

这是查询,但我不知道如何在 Laravel 中实现它

SELECT orders. * , payments. * 
FROM orders
INNER JOIN payments ON orders.user_id = payments.userID
WHERE orders.user_id =2
AND payments.userID =2

self::$user->... 是登录用户。如何在 WHERE 子句中使用它?

我不明白如何构建这个查询

更新 dd($orders)

object(Illuminate\Database\Eloquent\Collection)#264 (1) { ["items":protected]=> array(1) { [0]=> object(Order)#260 (20) { ["table":protected]=> string(6) "orders" ["primaryKey":protected]=> string(8) "order_id" ["connection":protected]=> NULL ["perPage":protected]=> int(15) ["incrementing"]=> bool(true) ["timestamps"]=> bool(true) ["attributes":protected]=> array(1) { ["processed"]=> string(1) "1" } ["original":protected]=> array(1) { ["processed"]=> string(1) "1" } ["relations":protected]=> array(0) { } ["hidden":protected]=> array(0) { } ["visible":protected]=> array(0) { } ["appends":protected]=> array(0) { } ["fillable":protected]=> array(0) { } ["guarded":protected]=> array(1) { [0]=> string(1) "*" } ["dates":protected]=> array(0) { } ["touches":protected]=> array(0) { } ["observables":protected]=> array(0) { } ["with":protected]=> array(0) { } ["morphClass":protected]=> NULL ["exists"]=> bool(true) } } }

最佳答案

Try this query code:-

$users = DB::table('orders')
->join('payments', 'orders.user_id', '=', 'payments.userID')
->where('orders.user_id', '2')
->where('payments.userID', '2')
->select('orders.*', 'payments.*')
->get();

关于php - 用 Laravel 和两个 WHERE 条件查询两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37878793/

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