路线:
Route::get('test', array('before' => 'auth', 'as' => 'asd', function()
{
$user = User::find('1'); //Auth::user();
$user->Persona->last_name = 'Blaine';
$user->push();
print_r($user->Persona);
exit;
}));
用户模型:
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface {
protected $table = 'ucpm_users';
public function Persona()
{
return $this->belongsTo('Persona','persona');
}
角色模型:
class Persona extends Eloquent
{
protected $table = 'metadata_personas';
public function User()
{
return $this->hasOne('User', 'persona');
}
public function Telefonos()
{
return $this->hasMany('Telefonos', 'persona');
}
}
当我按下()条目模型时,Laravel会抛出一个ErrorException:
参数1传递给Illuminate \ Support \ Collection :: __ construct()必须是类型数组,给定对象,在/var/www/laravel/vendor/laravel/framework/src/Illuminate/Support/Collection.php中调用41并定义
入口脚本(模型和路由)在laravel3下完全正常工作,我不知道为什么这在Laravel4下不起作用 . 有帮助吗?
2 回答
是的,正如我在评论中提到的那样,这是Laravel的一个错误 . 幸运的是Taylor刚刚在github上发布了一个修复程序 . 这是提交:
https://github.com/laravel/framework/commit/f41b86018cd3dc09dd5b216e98c3bfabf0653954
基本上你只需要更改\ vendor \ laravel \ framework \ src \ Illuminate \ Support \ Collection.php中的第41行来说
应该这样做:)
在遇到这个问题后,我发现John的答案是有效的,但需要修改
composer
创建的文件,我认为这不是最终解决方案 .Garbee建议实际需要的是将
vendor/laralve/lumen-framework
中的config
文件夹复制到根文件夹中这样做解决了我的问题 .