[英]repository pattern in laravel doesn't seem to work
App::bind('App\Http\Repositories\languageRepository',
function( $app, array $parameters)
{
return new App\Http\Repositories\languageRepository($parameters[0]);
} );
Route::get('/test/{id}', 'testController@getme');
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Repositories\languageRepository;
class test extends Controller
{
//
protected $language;
public function __construct(languageRepository $rep){
$this->language = $rep;
}
public function getme(){
$this->language->getMe();
}
}
例如,當用戶訪問路由 /test/5 時,它會轉到測試控制器。 我想要做的是,它應該自動將我的路由參數傳遞給 App:bind 函數,並使用作為我的路由參數傳遞的構造函數值自動創建 languageRepository 類。 發生的事情是代碼實際上告訴我 $parameters[0] 是未定義的偏移量。 這是為什么? 我已經嘗試過 App::make,但是如何將參數從路由傳遞到 App::make?
您可以使用容器的請求實例來完成此操作,以獲取查詢參數:
App::bind('App\Http\Repositories\languageRepository',function($app)
{
$request = $app['request'];
$parameters = $request->all();
return new App\Http\Repositories\languageRepository($parameters[0]);
});
您可以使用容器的請求實例來完成此操作,作為路由參數:
App::bind('App\Http\Repositories\languageRepository',function($app)
{
$request = $app['request'];
$segment = $request->segment(1);
return new App\Http\Repositories\languageRepository($segment);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.