'u kullanarak birden çok ilgili tablodan sonuçlar döndürme Laravel 4 kullanıyorum ve özellikle de anlamlı ORM kullanan bir cevap arıyorum.Laravel: eloquent
bir client_id ve her satır için tahsis user_id kaplar "görevleri" bir tablo.
bir "istemcileri" masada bir müşteri atıfta CLIENT_ID ve bir "kullanıcıları" masada bir kullanıcı anlamına gelir user_id. Ben yapmak istiyorum ne
: tüm görevleri göstermek ve görüntüler "istemcileri" adı ve "kullanıcıları"
Yani sonuç benim (bıçak şu şekilde görünecektir first_name) görünüm:
@foreach($tasks as $task)
<tr>
<td>{{ $task->user->first_name }}</td>
<td>{{ $task->client->name }}</td>
<td>{{ $task->description }}</td>
</tr>
@endforeach
yukarıdaki görünümü mükemmel iyi $ task-> client-> adını tükürür ama maalesef bir "T gösterir Ben çizgi $ eklediğinizde "olmayan nesnenin özelliği alma rying task-> kullanıcı-> first_name
Benim kontrolör şöyle görünür:
$tasks = Task::with(array('user', 'client'))->get();
return View::make('index', compact('tasks'));
Anladığım kadarıyla benim modeller de bir fark yaratmak, yani benim modeller şu şekilde görünür:
class Task extends Eloquent {
protected $guarded = array();
public static $rules = array();
public function client() {
return $this->belongsTo('Client');
}
public function user() {
return $this->belongsTo('User');
}
}
Ve:
class User extends Eloquent implements UserInterface, RemindableInterface {
public function task()
{
return $this->hasMany('Task');
}
}
Ve:
class Client extends Eloquent {
public function projects(){
return $this->hasMany('Project', 'client_id');
}
}
Bu işin nasıl yapıldığına dair herhangi bir fikir var mı? Başım ağrıyor bir süredir - aynı zamanda bir veritabanı ilişkisi pro değil ben daha basit bir açıklama daha iyi olduğunu not edin :)
benim kodunu kontrol edebilirsiniz. Muhtemelen Müşteriye ve Kullanıcıya doğrudan bağlantı kurmak için Eloquent'in belongsToMany() yöntemini kullanmalısınız. Pivot tablonuza nasıl ek alanlar ekleyeceğinizle ilgili bilgi için [this] (http://laravel.com/docs/eloquent#working-with-pivot-tables) bölümüne bakın. – ciruvan
Merhaba @cuewizchris Belgelere bir göz attım ve Kullanıcı/Rol/Özet örneğini benim ihtiyaçlarına nasıl çevireceğimi anlayamıyorum. HasMany() öğesini toMany() öğesine değiştirmem gerektiğini mi söylüyorsunuz? Burada biraz kayboldum. – Josh