我有一些代码在我的本地机器(WAMP,PHP 5.4.3)上运行良好,但在生产服务器(CentOS,PHP 5.4.11)上运行良好,我不明白为什么,代码行有问题是:
$sharedList = SharedList::with('itemList')
->where('unique_url', '=', $uniqueURL)
->first();
如果我删除 with() 急切加载,那么它运行没有问题,如果我不这样做(并且我不需要在我的本地机器上),那么我得到这个:
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。
这可能是一个 Ardent 问题,但我尝试替换extend Ardent
withextend Eloquent
无济于事。