laravel没有我的查询结果

fah*_*ahi 1 php laravel

我是Laravel的初学者

public function allorders($param1){
    $customerss=Customer::where('mobile_number',$param1)->first();
    $customer_id1=$customerss->id;
    $orderss= Order::where('customer_id',$customer_id1);

    return view('admin.allorders')->with('orderss', $orderss);
}
Run Code Online (Sandbox Code Playgroud)

我有这个观点 admin.allorders

@foreach ($orderss as $tag)
    <span class="label label-primary">{{  $tag['customer_id']}}</span>
@endforeach
Run Code Online (Sandbox Code Playgroud)

我确定$orderss它有数据,但它没有在视图中显示.

Ale*_*nin 7

您需要添加get()以执行查询:

$orderss = Order::where('customer_id', $customer_id1)->get();
Run Code Online (Sandbox Code Playgroud)

此外,您可以使用关系而不是:

$customerss=Customer::where('mobile_number',$param1)->first();       
$customer_id1=$customerss->id;
$orderss= Order::where('customer_id',$customer_id1);
Run Code Online (Sandbox Code Playgroud)

您只需一个查询就可以这样做:

$orderss = Order::whereHas('customer', function($q) use($param1) {
    $q->where('mobile_number', $param1);
})->get();
Run Code Online (Sandbox Code Playgroud)

要使其工作,请在Order模型中定义此关系:

public function customer()
{
    return $this->belongsTo(Customer::class);
}
Run Code Online (Sandbox Code Playgroud)