月間18,000PV達成! 収益は毎日発生中! 記事は毎日更新中! ギランバレー症候群に関する情報を集めています

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

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

 

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

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

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

 

 

Non-static methodエラーって何?

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

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

 

 

Non-static methodが発生する事例

SampleController」を定義します。

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

 

 

モデル「Sample」です。

 

 

何が問題か?

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

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

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

 

 

Advertisement

 

Non-static method対応策

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

 

 

おすすめ書籍

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

 

 

 

まとめ

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

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

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

Travelerを知らないの?