兩張資料表關聯查詢
筆記一、多表查詢
兩張表通過關聯欄位將一張表的company.name賦值給customer.origin
我的思路:
1、使用model查詢將資料查詢出來,查詢結果為數二維組;
$customer_model = model('Customer');
$csr_get = $customer_model->get($value['id']);
2、通過foreach將查訊的結果遍歷為一維陣列;
foreach ($csr_all_toArray as $key => $value) {}
3、將company中的資料通過模型查詢出來,然後巢狀在foreach中,再次遍歷;
4、將遍歷的資料賦值給$csr_get['origin'];
$csr_get['origin'] = $origin_res['name']
5、列印輸出結果為一維陣列;
dump($csr_res);
6、將一維陣列轉換為二維陣列渲染到檢視上。
我的問題:
一維陣列轉二維陣列
解決方案:
使用model查詢,將查詢結果遍歷:
//獲取關聯的兩張資料表
$customer_model = model('Customer');
$company_model = model('Company');
$csr_all_toArray = $customer_model->select();
foreach ($csr_all_toArray as &$value){
$company = $company_model->where('id', $value['origin'])->find();
$value['origin'] = $company['name'];
}
dump($csr_all_toArray);
注意事項:
1、引用符號,同指針一樣,將變數指向了一個位置,而不是複製了內容。
引用的意思是:不同的名字訪問同一個變數內容。php的引用(就是在變數或者函式、物件等前面加上&符號)。
$str = '第一個hello world';
$str2= &$str;
$str = '第二個hello world';
echo $str2;
2、select查詢出的是多條資料,需要在模版volist迴圈打印出來
find和get獲取單條資料,可直接在模版列印,find 方法查詢結果不存在,返回 null;
預設情況下,find和select方法返回的都是陣列,elect 方法查詢結果不存在,返回空陣列