1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Cannot use '$this' in non-object context エラーの対処法

Posted at

Laravelを使用中に、モデル内で$this->を使って当該モデルを参照しようとしたところ
Cannot use '$this' in non-object contextのエラーが出たので備忘録として対処法を残しておきます

結論からいうと当該モデルのgetUser()がインスタンス化されていないのでself::でアクセスするのが正解でした

Model.php
  public static function getUser($ids){
        return self::whereIn('id', $ids);
    }

上記で$this->からself::に変更したらエラーが改善しました

Controller.php
 public function index()
    {
        $searchResults =  Model::getUser([1,2,3])->get();
        return response()->json([
            'search_results' => $searchResults,
        ], 200);
    }

思考停止してしまって、インスタンス化など全く意識せずに何でもかんでも$this->を使っている状態だったので
はまってしまったエラーでした

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?