2016-04-08 18 views
0

Loaded:laravel 5.2 Etkili Kullanımı Bu seçkin kullanarak çalışmak alabilirsiniz Sorgu

User::whereNotIn('id', $ids) 
    ->select(['id', 'email']) 
    ->with('profile') 
    ->get(); 

Ben sadece hevesle yüklenen bir kullanıcı profilinde bir çift anahtarlarını almak istiyorum.

User::whereNotIn('id', $ids) 
    ->select(['id', 'email']) 
    ->with(['profile', function ($query) { 
     $query->select(['id', 'user_id', 'first_name', 'last_name']); 
    }])->get(); 

Veya: Böyle bir şey yapmak istiyorum

User::whereNotIn('id', $ids) 
    ->select(['id', 'email']) 
    ->with(['profile', function ($query) { 
     $query->addSelect(['id', 'user_id', 'first_name', 'last_name']); 
    }])->get(); 

Ama bu işe görünmüyor ve bu hatayı alıyorum: içinde

ErrorException in Builder.php line 1034: 
explode() expects parameter 2 to be string, object given 

Atıldı /Illuminate/Database/Eloquent/Builder.php:

/** 
* Parse the nested relationships in a relation. 
* 
* @param string $name 
* @param array $results 
* @return array 
*/ 
protected function parseNestedWith($name, $results) 
{ 
    $progress = []; 

    // If the relation has already been set on the result array, we will not set it 
    // again, since that would override any constraints that were already placed 
    // on the relationships. We will only set the ones that are not specified. 
    foreach (explode('.', $name) as $segment) { // <--- line 1034 
     $progress[] = $segment; 

     if (! isset($results[$last = implode('.', $progress)])) { 
      $results[$last] = function() { 
       // 
      }; 
     } 
    } 

    return $results; 
} 

Bunu başarmanın bir yolu var mı?

cevap

1

Kullanım yerine istekli yük kısıtlaması kapatılması Sen addSelect yabancı anahtar aksi hiçbir şey

+0

Merhaba yüklenecek eklemek zorunda

User::whereNotIn('id', $ids)->select(['id', 'email']) ->with(['profile' => function($query) { $query->addSelect(['id', 'user_id', 'first_name', 'last_name']); }])->get(); 

içinde "seçeneğini" nin "addSelect", ben o çalıştı ama ben bu hatayı alıyorum: 'ErrorException Builder.php satırında 1034: explode() parametresi 2'nin dize olmasını bekler, ' – mtpultz

+1

verilen nesne', istekli yükleme için dizi gösterimi kullandığınızı fark etmedim – naneri

+0

Oh adam, siz ' Bir hayat kurtarıcı! Eklenmesi gereken yabancı anahtar sütununu asla çözemezdim ve dizi gösterimini batırdım. Ben => 'eksikti. – mtpultz