所以这可能是一个简单的问题,但我已经忙了几个小时了。错误信息
Illuminate \ Container \ BindingResolutionException
Target [foo\repositories\OrderRepositoryInterface] is not instantiable.
我的界面:
<?php namespace foo\repositories;
interface OrderRepositoryInterface
{
public function index(array $dateRange = null, $customerId = null);
}
存储库:
<?php namespace foo\repositories;
use Carbon\Carbon;
use Order;
class OrderRepository implements OrderRepositoryInterface
{
public function index(array $dateRange = null, $customerId = null)
{
return 'HI';
}
}
我的路线文件:
App::bind('foo\repositories\OrderRepositoryInterface.php',
'foo\repositories\OrderRepository.php');
Route::resource('orders', 'OrdersController');
最后是 Controller :
<?php
use foo\repositories\OrderRepositoryInterface;
class OrdersController extends \BaseController
{
protected $order;
/**
* @param OrderRepositoryInterface $order
*/
public function __construct(OrderRepositoryInterface $order)
{
$this->order = $order;
}
public function index()
{
$orders = $this->order->index();
return $orders;
}
最佳答案
当您在 App::bind 中绑定(bind)界面和存储库时,尝试从界面和存储库中删除 .php More about binding here
App::bind('foo\repositories\OrderRepositoryInterface',
'foo\repositories\OrderRepository');
关于php - 与依赖注入(inject)的绑定(bind)不起作用。目标不可实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23311982/