笔记一、多表查询
两张表通过关联字段将一张表的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 方法查询结果不存在,返回空数组