簡體   English   中英

laravel 中的存儲庫模式似乎不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM