我創建了加載資料庫資料的類。
<?php
namespace App\Repositories;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Log;
class FantasticRepository
{
private function getFantastic($id)
{
$user = Auth::user();
$companyId = $user->id;
$tableName = "elites";
return \DB::table($tableName )->where('id', $id)->first();
}
}
但是控制器不能呼叫我創建的類的函式。
use App\Repositories\FantasticRepository;
class FooController extends Controller
{
private FantasticRepository $fantasticRepository;
public function getFantastic(Request $request)
{
$ke = $fantasticRepository->getInformation($request->id);
return view('ke.index',compact($ke));
}
}
我的錯誤日志說
local.ERROR:未定義變數:fantasyRepository {“userId”:4,“exception”:“[object](ErrorException(代碼:0):未定義變數:fantasyRepository at /Users/Developments/abc/app/Http/Controllers/FooController .php:36) [stacktrace] #0 /Users/Developments/app/Http/Controllers/FooController.php(36): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(8, 'Undefined varia...', ' /Users/...', 36, 陣列)
laravel 應用程式可以使用外部類嗎?
uj5u.com熱心網友回復:
在 Laravel 中,我們可以使用 use 匯入呼叫。
use App\Repositories\FantasticRepository;
class FooController extends Controller
{
use FantasticRepository;
public function getFantastic(Request $request)
{
$ke = $this->getFantastic($request->id);
return view('ke.index',compact($ke));
}
}
uj5u.com熱心網友回復:
你需要依賴注入。您可以在建構式或函式引數中執行此操作。
public function __construct(private FantasticRepository $fantasticRepository) {}
//or
public function getFantastic(Request $request, FantasticRepository $fantasticRepository) {}
uj5u.com熱心網友回復:
您不能private在其類之外使用該函式,因此您必須將 getFantastic函式定義為public函式才能在控制器中使用它
private function getFantastic($id)
{
$user = Auth::user();
$companyId = $user->id;
$tableName = "elites";
return \DB::table($tableName )->where('id', $id)->first();
}
到
public function getFantastic($id)
{
$user = Auth::user();
$companyId = $user->id;
$tableName = "elites";
return \DB::table($tableName )->where('id', $id)->first();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/430329.html
