2013-07-31 1 views
0

У меня есть код, который отлично работает на моей локальной машине (WAMP, PHP 5.4.3), но не на рабочем сервере (CentOS, PHP 5.4.11) и я не могу понять, почему, мешающая строка коды:Laravel live server не работает с нетерпением загрузки

$sharedList = SharedList::with('itemList') 
          ->where('unique_url', '=', $uniqueURL) 
          ->first(); 

если я удалить с() нетерпеливым загрузка, то это работает без проблем, если я не (и не нужно на моей локальной машине), то я получаю это:

Argument 2 passed to Illuminate\Database\Eloquent\Relations\BelongsTo::match() 
must be an instance of Illuminate\Database\Eloquent\Collection, instance of 
ItemList given, called in /home/mgc/public_html/test/vendor/laravel/framework 
/src/Illuminate/Database/Eloquent/Builder.php on line 474 and defined 

/home/site/public_html/test/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php 

line 154: public function match(array $models, Collection $results, $relation) 

соответствующая информация зависимость от модели SharedList является:

class SharedList extends Ardent { 

public function itemList() 
{ 
    return $this->belongsTo('ItemList', 'list_id'); 
} 

Я не знаю, является ли это проблемой капитализации, в методе with() я попытался ItemList, itemlist и itemList.

Это может быть яростная проблема, но я попытался заменить extend Ardent на extend Eloquent безрезультатно.

ответ

0

Ваш with('itemList') верен, так как это должно быть имя функции, устанавливающей связь. У меня такое чувство, что проблема может быть с предложением where, которое будет после этого. Попробуйте ленивую нетерпеливую загрузку.

$sharedList = SharedList::where('unique_url',$uniqueURL)->get(); 
$sharedList->load('itemList'); 
+0

Привет, Это вызывает ту же ошибку, я полагаю, что это связано с настройкой отношений как-то –