2017-02-15 57 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