クラスを介してモデルにアクセスしようとしています。 私はこれをLaravel 5.5インストールで実行しようとしています。 私のカスタムクラスを保持するアプリケーション/ライブラリのフォルダがある以外は、フォルダ構造がデフォルトです。カスタムクラスを使用したモデルへのアクセス
私のクラスでモデルにアクセスしようとすると、私の下のエラーが表示されます。おそらくネームスペースの問題ですが、私はそれを見つけることができません。それは間違った場所を見ている。
エラーが
クラス 'のApp \ライブラリ\アプリケーション\ AccountsModel' の下に
を
見つからない場合は、私のコードです。アプリ/ライブラリ/ Account.php
<?php namespace App\Libraries; use App\AccountsModel; class Account { public $accountNum; public $accountDescription; public $isMainAccount; public $parentAccount; public $createTime; public $updatedTime; public function getInfo($accountNum) { $account = App\AccountsModel::where('accountNumber', $accountNum)->take(1)->get(); //Error coming up due to this line //return $account; //return $this; } } ?>
アプリ\ AccountsModel.php
<?php namespace App\AccountsModel; use Illuminate\Database\Eloquent\Model; class AccountsModel extends Model { protected $table = 'accounts'; }
アプリ/ HTTP /コントローラ/ AccountsController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Libraries\Account; class AccountsController extends Controller { public function create() { $account = new Account; var_dump($account->getInfo("1-1000")); } }
私は自動ロードしています次のようなcomposer.jsonのモデル。 下記の入力もありがとうございます。 モデル内のコンストラクトにクラス名をエコーしてみましたが、エコーは発生しませんでしたので、私はこれも誤って自動ロードしていると思います。
"autoload": { "classmap": [ "database/seeds", "database/factories" ], "psr-4": { "App\\": "app/", "AccountsModel\\" : "app/AccountsModel.php" } },
最終的に、エラーが発生したときに私のカスタムアカウントクラスを介してモデルにアクセスしようとしています。 何か助けていただければ幸いです。あなたの
app/AccountsModel.php
ファイルで
「名前空間App \ Libraries;」を「名前空間App」に変更してみてください。 ' –
それを行いました。今すぐ "クラス 'App \ Libraries \ Account'が見つかりません。しかし、クラス名Account.phpは、上記のディレクトリにあります。何か案が? –
名前空間App \ AccountsModelを削除します。名前空間Appを使用します。 –