1

laravel4 でデータベースの値を更新しようとしています。これはちょっとしたコーナーケースです。データベースには、セッション ID を持つエントリが 1 つしかありません。Facebookに対して認証するために使用されます。

これはモデルです:

<?php

use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;

    class Accesstoken extends Eloquent {

    public static function createpost($token)
    {
        $accesstoken = new Accesstoken;
        $accesstoken->accesstoken = $token;
        $accesstoken->save();
    }

    public static function update($token)
    {
        $accesstoken = Accesstoken::find(1);
        $accesstoken->accesstoken = $token;
        $accesstoken->save();
    }
}

間違っているのは 2 番目の関数です。移行を行う前に追加しようとすると、移行できず、このように呼び出そうとすると

Accesstoken::update($access_token);

次のエラーが表示されます。なぜですか?

非静的メソッド Illuminate\Database\Eloquent\Model::update() をクラス Accesstoken で静的にすることはできません

4

1 に答える 1

2

Eloquent にはすでに update() メソッドがあります。次のようなものを試してください

<?php

use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;

    class Accesstoken extends Eloquent {

    public static function createpost($token)
    {
        $accesstoken = new Accesstoken;
        $accesstoken->accesstoken = $token;
        $accesstoken->save();
    }

    public static function updateToken($token)
    {
        $accesstoken = Accesstoken::find(1);
        $accesstoken->accesstoken = $token;
        $accesstoken->save();
    }
}

Accesstoken::updateToken($access_token);
于 2013-08-29T15:41:16.830 に答える