[解決済み] 未定義のメソッドの呼び出し、修正方法は?[クローズド]。
2022-02-09 07:41:09
質問
PHPで以下のような致命的なエラーが発生します。
致命的なエラーです。Call to undefined method CoffeeModel::GetCoffeeByType() in C:\wampwww12.01.2015 Class 01Coffee WebsiteControllerCoffeeController.php on line 37
Call Stack
# Time Memory Function Location
1 0.0030 142264 {main}( ) ..\Coffee.php:0
2 0.0130 162800 CoffeeController->CreateCoffeeTables( ) ..\Coffee.php:15
上記エラーのコードを以下に示します。
function CreateCoffeeTables($types)
{
$coffeeModel = new CoffeeModel();
$coffeeArray = $coffeeModel->GetCoffeeByType($types);
$result = "";
// Generate a coffeeTable for each coffeeEntity in array
foreach ($coffeeArray as $key => $coffee) {
$result = $result .
"<table class = 'coffeeTable'>
<tr>
<th rowspan='6' width= '150px' ><img runat = 'server' src = '$coffee->image'/></th>
<th width = '75px' >Name: </th>
<td>$coffee->name</td>
</tr>
<tr>
<th>Type: </th>
<td>$coffee->type</td>
</tr>
<tr>
<th>Price: </th>
<td>$coffee->price</td>
</tr>
<tr>
<th>Roast: </th>
<td>$coffee->roast</td>
</tr>
<tr>
<th>Origin: </th>
<td>$coffee->country</td>
</tr>
<tr>
<td colspan='2' >$coffee->review</td>
</tr>
</table>";
}
return $result;
}
このコードでは、CoffeeModelクラスが存在します。
<?php
require ("Entities/CoffeeEntity.php");
// contains database related code for the coffee type
class CoffeeModel
{
// Get all coffee types from the database and return them in an array
function GetCoffeeTypes()
{
require 'Credentials.php';
//Open connection and Select database
mysql_connect($host, $user, $password) or die (mysql_error());
mysql_select_db($database);
$result = mysql_query("SELECT DISTINCT type FROM coffee") or die(mysql_error());
$types = array();
// Get data from databse
while($row = mysql_fetch_array($result))
{
array_push($types, $row[0]);
}
// Close connection and return
mysql_close();
return $types;
}
}
// GET coffeeEntity objects from the database and return them in an array.
function GetCoffeeByType($type)
{
require 'Credentials.php';
// Open connection and select database
mysql_connect($host, $user, $password) or die (mysql_error());
mysql_select_db($database);
$query = "SELECT * FROM coffee WHERE LIKE '$type'";
$result = mysql_query($query) or die (mysql_error());
$coffeeArray = array();
//GET Data from Database
while ($row = mysql_fetch_array($result))
{
$name = $row[1];
$type = $row[2];
$price = $row[3];
$roast = $row[4];
$country = $row[5];
$image = $row[6];
$review = $row[7];
// Create Coffee objects and store them in an array
$coffee = new CoffeeEntity (-1, $name, $type, $price, $roast, $country, $image, $review);
array_push($coffeeArray, $coffee);
}
// CLose connection and return result
mysql_close();
return $coffeeArray;
}
どうすれば直るのでしょうか?
どのように解決するのですか?
さて、投稿された問題だけに焦点を当てると、あなたの問題は、最初のメソッドの後でクラスを閉じていることです。
}
} <---- this closing bracket is terminating the class
// GET coffeeEntity objects from the database and return them in an array.
function GetCoffeeByType($type)
{
この括弧を1つだけファイルの最後に移動させれば、うまくいくはずです。その次は、クラスの構成をブラッシュアップする必要がありますが、それはまた別の話です。
関連
-
[解決済み】DateTimeクラスのオブジェクトを文字列に変換できない
-
[解決済み】php, mysql - データベースへの接続数が多すぎるエラー
-
[解決済み】未定義のメソッド mysqli_stmt::get_result を呼び出す。
-
[解決済み】PHPの予期しないT_VARIABLEとは何ですか?
-
[解決済み] [Solved] Fatal error: メンバ関数 query() の null への呼び出し。
-
[解決済み】書き込みコンテキストでメソッドの戻り値を使用することができない
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] ある文字列が特定の単語を含んでいるかどうかを確認するにはどうすればよいですか?
-
[解決済み] YouTube APIからYouTubeビデオのサムネイルを取得する方法を教えてください。
-
[解決済み] "お知らせ 未定義変数"、"Notice: Notice: 未定義のインデックス", "Notice:未定義のインデックス", "Notice."。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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] Fatal error: メンバ関数bind_param()のbooleanに対する呼び出し [重複] [重複
-
[解決済み] [Solved] Fatal error: メンバ関数prepare()のNULLでの呼び出し
-
[解決済み] 整形されていない数値が発生しました。
-
[解決済み】++と*+の意味は何ですか?
-
[解決済み】php, mysql - データベースへの接続数が多すぎるエラー
-
[解決済み] SQLSTATE[HY093]: 無効なパラメータ番号: バインドされた変数の数が102行目のトークンの数と一致しない [終了]
-
[解決済み] $wpdb->update または $wpdb->insert を実行すると、引用符の前にスラッシュが追加される
-
[解決済み】 libapache2-mod-php7 パッケージが見つからない。
-
[解決済み】Wordpressの子テーマのstyle.cssが効かない。
-
[解決済み】MySQLのカラム数が1行目の値数と一致しない【非公開