laravel: Relationship方法必须返回一个类型为IlluminateDatabaseEloquent


laravel: Relationship method must return an object of type IlluminateDatabaseEloquentRelationsRelation

我有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');
}

它应该创建一个新用户,然后看看是谁邀请了他,然后创建一个与邀请者共享的记录。

但是当我测试它时,我得到了错误:

LogicException

Relationship方法必须返回类型为照亮'关系数据库'雄辩的' '

的关系

打开:/home/oneinfinin/public_html/透析/vendor/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;

,但这也失败了,同样的错误。只有当我完全删除这部分时,函数才能通过。

怎么了?我尝试清除缓存,但仍然不工作

我想改变

$share->save;

$share->save();