如题
我有两个表,一个order,一个customer,
customer:
public function getOrders()
{
return $this->hasMany(Order::className(), ['customer_id'=>'id']);
}
order:
public funciton getCustomer()
{
return $this->hasOne(Customer::className(), ['id'=>'customer_id']);
}
我想生成的数据应该是数组形式,那我在前台用:
<?php echo $orders['id']; ?>
应该可以啊,但为什么老是提示:“Undefined index: id”
你應該先var_dump models 看看內容是甚麼!!
hasMany : 一對多 => 一個客戶可以有很多訂單
hasOne : 一對一 => 一個訂單只能有一個客戶
把兩張 table join 起來:
首先:需要用<?php echo $orders->id; ?>
取值。因为取出的是类,不是数组。类属性获取用->
其次,获取数组形式的方式有两种,一种是在查询的时候,例如customer::find()->where($where)->with('order')->asArray()->all();
返回的是数组形式,一种是获取了之后再转成数组,例如$customer = customer::findOne($where);$order = $customer->order;$orderArr = $order->toArray();
$orderArr = $order->toArray(); 最后这个toArray() 提示不识别呀