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