http://laravel.com/docs/4.2/eloquent#dynamic-propertiesPiù chiamate alla proprietà dinamica Eloquent colpiscono il database più volte?
class Phone extends Eloquent {
public function user()
{
return $this->belongsTo('User');
}
}
$phone = Phone::find(1);
Ora, se io poi fare qualcosa di simile:
echo $phone->user->email;
echo $phone->user->name;
echo $phone->user->nickname;
Will Eloquente effettuare una chiamata di database per ogni volta che uso la proprietà dinamica ->user
? O è abbastanza intelligente da mettere in cache l'utente alla prima chiamata?
Un'iterazione effettuare una chiamata a '' Phone' e user'. Molteplici iterazioni devi caricarti. http://laravel.com/docs/5.0/eloquent#eager-loading – user2094178
http://laravel.com/docs/4.2/eloquent#eager-loading – user2094178
Credo che il primo riferimento a '$ telefono-> utente' caricherà il modello 'User' completo di tutti gli attributi locali a quel modello. Supponendo che 'email',' name' e 'nickname' siano memorizzati in' User', questo comporterebbe solo due query del database (una per il telefono, un'altra per l'utente). Provalo: dopo queste istruzioni, esegui 'dd (\ DB :: getQueryLog())' per vedere le query esatte fatte. – bishop