Я только начинаю с ORM. У меня был вопрос, это мой табель -Eloquent ORM query - новичок
стол a - (помощь, aname, atag);
таблица b - (ставка, помощь, bname, ..);
Это один ко многим отношений - это один помощь может принадлежать многим ставка но одна ставку может принадлежать только одна помощи.
Итак, я попробовал этот код, в то время как я хочу - (bname, aname) для всех записей.
Модель -
class A extends Eloquent {
protected $table = 'a';
protected $primaryKey = 'aid';
public function brelation() {
$this->belongsToMany('B','aid');
}
}
Б модель -
class B extends Eloquent {
protected $table = 'b';
protected $primaryKey = 'bid';
public function getANames() {
$this->hasOne('A','aid');
}
}
В контроллере -
foreach(B::with('getANames')->get() as $b_item){
echo $b_item->bname." , ".$b_item->aname;
}
Пара точек для уточнения -
1) Я должен указать внешний ключ, чтобы убедиться, что они ап. Потому что в моем случае они называются по-разному.
2) Я использую Laravel 4.
Может кто-то показать мне, что я сделал не так и как я могу получить желаемый результат.
===== ===== Обновление
class A extends Eloquent {
protected $table = 'a';
protected $primaryKey = 'aid';
public function brelation() {
$this->belongsTo('B','aid');
}
}
Я до сих пор не может получить доступ к aname столбца (т.е. $ b_item-> aname) в контроллере.
Привет Я редактировал свой пост .. Я до сих пор не в состоянии получить доступ к колонку aname из таблицы А .. Я сделал все изменения предложил .. – Fox
Как я уже говорил, 'A' принадлежит' B', а не наоборот, как вы его в своем редактировании. brelation() должно быть '$ this-> hasMany ('B', 'aid')'. islation() должно быть '$ this-> принадлежит To ('A', 'aid')'. – treeface