2015-04-28 122 views
0

noob问题进入..Laravel引用外键数据

$数据= DB ::表( 'fquotes') - >排序依据( 'created_at', 'DESC') - >获得();

我有这个查询是从fquotes中提取所有数据。每个商品都有一个cid,链接到另一个表中的客户ID。如何在客户表中包含匹配每行的列(名称)?

我要显示的数据:

客户名客户行 - fquotes排

回答

0

你打电话get()将执行查询之前,调用join()方法,它会加入你的表上的其他表由指定的列。

$data = DB::table('fquotes') 
    ->select('customers.id as customer_id', 'fquotes.id as fquotes_id', DB::raw('*')) 
    ->orderBy('created_at', 'DESC') 
    ->join('customers', 'fquotes.cid', '=', 'customers.id') 
    ->get(); 
+0

谢谢!它通常是最基本的PHP的东西,每个人都应该知道,很难找到答案,因为它非常简单.. :) – ZUK88

+0

我收到了另一个问题。来自客户的ID正在覆盖返回对象中来自fquotes的ID。有任何想法吗? – ZUK88

+0

是的,你可以在选择中别名,我已经更新了答案。 – user3158900

0

你不加入可以使用,只要使用foreach

public function index(Request $request, $id) 
    { 
     $items = ReportGlAssignment::where('shop_id', $id)->paginate(10); 

     foreach ($items as $item){ 
      $bill = BillingAssignment::where('id',$item->billing_assignment_id)->pluck('assignment'); 
      $item['billing_assignment_id'] = $bill; 
     } 

     return response()->json($items); 
    } 

它会显示你的外键数据的名称,

{ 
id: 7, 
designation: "​Food Service", 
income_gl: "333", 
expense_gl: "333", 
billing_assignment_id: "bgjjnhkj", 
shop_id: 12, 
created_at: "2017-08-21 07:26:48", 
updated_at: "2017-08-23 09:35:54" 
},