Laravel 连接表不返回数据

机器人先生

我有 2 张桌子ordersdelivery_boys. 我已加入这 2 个表以获取送货员的详细信息

public function index()
{
    $orders = Order::join('delivery_boys', 'delivery_boys.id', 'orders.delivery_boy_id')
        ->select('orders.id', 'name', 'phone_number', 'orders.address', 'orders.city', 'orders.pincode', 'delivery_time_slot', 'total', 'delivery_boys.name as delivery_boy')
        ->get();

    return view('pages.orders', compact('orders'));
}

orders当 中有数据时我会得到所有delivery_boy_id,但如果它是空的,我就不会得到任何数据。

最初当订单进来时,orders表格delivery_boy_id将是空的。即使数据为空,我也想要数据。

我怎样才能做到这一点?

谢谢

右转

这是因为默认情况下join会产生一个内部联接。内连接意味着它只会检索两边都有数据的行。

你所追求的是左连接:

public function index()
{
    $orders = Order::leftJoin('delivery_boys', 'delivery_boys.id', 'orders.delivery_boy_id')
        ->select('orders.id', 'name', 'phone_number', 'orders.address', 'orders.city', 'orders.pincode', 'delivery_time_slot', 'total', 'delivery_boys.name as delivery_boy')
        ->get();

    return view('pages.orders', compact('orders'));
}

或者,您也可以为此设置一个关系:

假设您有一个模型,delivery_boys只需将以下方法添加到您的Order模型中:

public function deliveryBoy()
{
    return $this->belongsTo(DeliveryBoy::class);
}

获取订单:

$orders = Order::with('deliveryBoy')->get();

最后,要访问有关送货员的信息:

foreach ($orders as $order) {

    $order->deliveryBoy->name; //To get the delivery boy's name 
}

希望这可以帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel ajax 不返回数据

来自分类Dev

Laravel 5.4 - 从连接表返回单行

来自分类Dev

Laravel 5命令不返回数据

来自分类Dev

Laravel在view-> with()上不返回数据

来自分类Dev

laravel雄辩地不返回任何数据

来自分类Dev

Laravel includesToMany不返回相关数据

来自分类Dev

Laravel 邮件视图不返回传递的数据

来自分类Dev

Laravel 5.6 Eloquent 方法不返回数据

来自分类Dev

laravel连接表(如果存在数据)

来自分类Dev

Laravel 左连接多个表并返回原始表值

来自分类Dev

Laravel 更新 mysql 表返回空数据

来自分类Dev

Laravel 数据库查询不返回数据

来自分类Dev

Laravel连接表与关系模型返回为JSON

来自分类Dev

Laravel连接表

来自分类Dev

尝试在Resource Laravel中返回数据透视表数据

来自分类Dev

Laravel Socialite不返回用户数据

来自分类Dev

Laravel:AJAX 不更新数据库表

来自分类Dev

Laravel,删除后不更新多态表的数据

来自分类Dev

Laravel 4:连接来自不同数据库的表

来自分类Dev

如何指定Laravel用于迁移表的数据库连接?

来自分类Dev

自动连接到Laravel 5中的数据透视表

来自分类Dev

Laravel 返回匹配两个表的数据

来自分类Dev

如何从主视图 Laravel 5.7 返回表数据

来自分类Dev

Laravel hasManyThrough什么也不返回

来自分类Dev

从使用数据透视表连接的2个表中获取数据(Laravel 5.3)

来自分类Dev

Laravel更新不更新表

来自分类Dev

使用laravel连接多个表

来自分类Dev

Laravel Eloquent 连接表关系

来自分类Dev

Laravel 4:使用Eloquent连接两个表进行多个数据库连接