[解決済み] Eloquentモデルでメソッドを呼び出すと「Non-static method should not be called statically」が表示されるのですが?
2022-02-17 04:09:07
質問
コントローラでモデルを読み込もうとして、次のようにしました。
return Post::getAll();
エラーが発生しました
Non-static method Post::getAll() should not be called statically, assuming $this from incompatible context
モデル内の関数はこのようになっています。
public function getAll()
{
return $posts = $this->all()->take(2)->get();
}
コントローラでモデルをロードし、その内容を返す正しい方法は何でしょうか?
どのように解決するのですか?
メソッドを非静的として定義し、それを静的として呼び出そうとしています。とはいえ...
1.静的メソッドを呼び出したい場合は
::
で、メソッドをstaticとして定義してください。
// Defining a static method in a Foo class.
public static function getAll() { /* code */ }
// Invoking that static method
Foo::getAll();
2.そうでない場合、インスタンスメソッドを呼び出すには、クラスをインスタンス化する必要があります。
->
.
// Defining a non-static method in a Foo class.
public function getAll() { /* code */ }
// Invoking that non-static method.
$foo = new Foo();
$foo->getAll();
備考 : Laravelでは、ほぼすべてのEloquentメソッドがモデルのインスタンスを返すので、以下のようにメソッドを連鎖させることができます。
$foos = Foo::all()->take(10)->get();
そのコードの中で私たちは
静的に
を呼び出します。
all
メソッドを Facade 経由で実行します。その後、他のすべてのメソッドが
インスタンスメソッド
.
関連
-
[解決済み】Notice: 非オブジェクトのプロパティを取得しようとしているエラー
-
[解決済み】Weird PHP error: 'Can't use function return value in write context'.
-
[解決済み】空の配列要素を削除する
-
[解決済み】Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING エラーが発生しました。
-
[解決済み】PHP フェイタルエラー。未定義の関数mssql_connect()をコールしています。
-
[解決済み】count()パラメータは配列かlaravelのcountableを実装したオブジェクトでなければならない
-
[解決済み] [Solved] Fatal error: メンバ関数 query() の null への呼び出し。
-
[解決済み】SSLピア証明書またはSSHリモートキーがOKでなかった
-
[解決済み】/var/www/htmlとは何ですか?[クローズド]
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】SQLSTATE[42000]: 構文エラーまたはアクセス違反が発生しました。1064 SQL 構文にエラーがあります - PHP - PDO [重複]。
-
[解決済み】 $_SERVER['DOCUMENT_ROOT'] と $_SERVER['HTTP_HOST'] の違いについて]
-
[解決済み】 libapache2-mod-php7 パッケージが見つからない。
-
[解決済み] 入力ファイルが指定されていない
-
[解決済み】/var/www/htmlとは何ですか?[クローズド]
-
[解決済み] Uncaught SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み】Wordpressの子テーマのstyle.cssが効かない。
-
[解決済み】書き込みコンテキストでメソッドの戻り値を使用することができない
-
[解決済み] オートロードとは何ですか; spl_autoload、__autoload、spl_autoload_register はどのように使うのですか?
-
[解決済み] mysql_field_nameを新しいmysqliに変更します。