2017-02-15 56 views
0

我想访问查询中查询的值。无法从控制器访问值(Laravel 5.3)

$bookings = DB::table('bookings') 
      ->join('staffs', 'staffs.id' , '=', 'bookings.staff_id') 
      ->join('customers', 'customers.id' , '=', 'bookings.customer_id') 
      ->select('bookings.id', 'bookings.start_time', 'bookings.end_time', 'bookings.service', 'staffs.name as Staff-Name', 'customers.name as Customer-Name') 
      ->orderBy('customers.name', 'desc') 
      ->get(); 

     return view('booking.index')->with('bookings', $bookings); 

这很容易理解。我想要做的是,我想获得start_time,end_time这是在预订表中,名称是员工表也名字在customers表中。

现在我在做这样的:

@foreach($bookings as $booking) 
    {{ $booking->start_time }} 
    {{ $booking->end_time }} 
    {{ $booking->name }} // name column which is in customers table 
@endforeach 

但这些事情似乎并没有工作。

+0

打印$预订的价值,如dd($ bookings) –

+0

我得到预期结果时,我在做dd($预订),但现在当{{$ booking-> start_time}} – waq

回答

0

试试这个

$bookings = DB::table('bookings') 
     ->join('staffs', 'staffs.id' , '=', 'bookings.staff_id') 
     ->join('customers', 'customers.id' , '=', 'bookings.customer_id') 
     ->select('bookings.id', 'bookings.start_time', 'bookings.end_time', 'bookings.service', 'staffs.name as Staff-Name', 'customers.name as Customer-Name') 
     ->orderBy('customers.name', 'desc') 
     ->get(); 

     return view('booking.index')->with(compact('bookings')); 
0

的$预订包含数据的数组。你可以在你看来IKE在此..

@foreach($bookings as $booking) 
    {{$booking->start}} 
    {{$booking->end_time}} 
@endforeach 
2

这都是因为你使用的列名,而不是别名您设置打印这些。

看看它,例如customers.name被命名为客户名称

->select('bookings.id', 'bookings.start_time', 'bookings.end_time', 'bookings.service', 'staffs.name as Staff-Name', 'customers.name as Customer-Name') 

如果您要访问的数据,你需要做的是这样的:

@foreach($bookings as $booking) 
    {{ $booking->start_time }} 
    {{ $booking->end_time }} 
    {{ $booking->Customer-Name }} // name of alias 
@endforeach 

无论如何,我不认为在别名破折号很好的解决方案,你应该使用下划线代替。 (customers.name as Customer_Name)$booking->Customer_Name