やっほー
【Laravel】Non-static methodエラー対応策!

【Laravel】Non-static methodエラー対応策!

  • 2019年1月23日
  • 2021年3月19日
  • Laravel
  • 19view

Non-static method」ってなんやねん。。

Laravelで開発をしているのですが、謎のエラーが出ました。

エラー内容から何となく分かりますが、とりあえずまとめてみました。

Non-static methodエラーって何?

ざっくり言うと、「staticメソッドがない」って言ってます。

もっと言うと、「staticにアクセスできない」って言ってます。

Non-static methodが発生する事例

SampleController」を定義します。
本コントローラーからモデル「Sample」の「execute」メソッドを呼び出します。

 

モデル「Sample」です。

何が問題か?

上記は、コントローラーからモデルのメソッドをstaticに呼び出しているのが問題です。

Laravelではstaticにアクセスする際、モデル側のメソッド名に「scope」と付けます。

これにより、コントローラーからモデルのメソッドにstaticにアクセスできます。

Non-static method対応策

モデル「Sample」を上記のように修正します。これでOK!!

おすすめ書籍

僕はLaravelの勉強をするのに以下の書籍を購入しました。おすすめですよ!

まとめ

scope」って付けるのはいいですが、なんかメソッド名が一致していないのでモヤっとしませんか?

元々Javaエンジニアだったので、この書き方には違和感しかありません。

まあ、原因が分かったので良しとしましょう。

【Laravel】Non-static methodエラー対応策!
フォローしてもらえると泣いて喜びます