laravel:关系方法必须返回类型为 Illuminate\Database\Eloquent\Relations\Relation 的对象
我有3个DB表,我没有对其中任何一个表建立任何关系。然后我写了下面的代码:
public function store($key)
{
$user_key = md5(Input::get('email') . "-" . strtotime('now'));
$user = new User;
$user->name = Input::get('name');
$user->email = Input::get('email');
$user->user_key = $user_key;
$user->password = Hash::make(Input::get('password'));
$user->apipass = md5(Input::get('password'));
$user->save();
$newUid = $user->id;
//check key for share
$invited = DB::table('invites')->where('invite_key', Input::get('invite_key'))->where('status', '0')->count();
if($invited == 1) {
$inviter_id = DB::table('invites')->where('invite_key', Input::get('invite_key'))->where('status', '0')->pluck('user_id');
$read_only = DB::table('invites')->where('invite_key', Input::get('invite_key'))->where('status', '0')->pluck('read_only');
$share = new RecordShare;
$share->user_id = $inviter_id;
$share->shared_with_id = $newUid;
$share->read_only = $read_only;
$share->save;
}
return Redirect::to('login');
}
它应该创建一个新用户,然后查看谁邀请了他,然后与邀请者创建共享记录。
但是当我测试它时,我得到了错误:
逻辑异常
关系方法必须返回类型为 Illuminate\Database\Eloquent\Relations\Relation 的对象
打开: /首页/oneinfin/public_html/透析/供应商/laravel/framework/src/Illuminate/Database/Eloquent/Model.php
*/
protected function getRelationshipFromMethod($key, $camelKey)
{
$relations = $this->$camelKey();
if ( ! $relations instanceof Relation)
{
throw new LogicException('Relationship method must return an object of type '
. 'Illuminate\Database\Eloquent\Relations\Relation');
}
我认为我的数据有问题,因此尝试创建一个空记录
$share = new RecordShare;
$share->save;
但这也失败了,有同样的错误。只有当我完全删除此部分时,该函数才会通过。
可能出了什么问题?我试图清除缓存,但仍然不起作用。