2015-06-05 2 views
3

я есть RequestInterface.php как это:коррекция инверсии зависимостей Laravel 5

<?PHP 
namespace App\Http\Requests; 

interface RequestInterface { 

} 

и абстрактный класс Request.php:

<?php namespace App\Http\Requests; 

use Illuminate\Foundation\Http\FormRequest; 


abstract class Request extends FormRequest implements RequestInterface { 

    // 
} 

и у меня есть PagesRequest.php, который простирается от Request.php:

<?php namespace App\Http\Requests; 

use App\Helpers\Helpers; 

class PageRequest extends Request implements RequestInterface { 

В контроллеру я должен вводить PageRquest и более ездить edit() метод CrudController класса и проверить инъекцию в другом классе, как это:

PageController.php:

protected function update($id, PageRequest $request){ 
    parent::update($request, $id); 
} 

и файл, который я должен проверить впрыскивается класс иметь RequestInterface:

protected function update($id, RequestInterface $request) 
    { 
} 

Но у меня есть эта ошибка

Объявление A с \ Http \ Контроллеры \ PagesController :: Update() должны быть совместимы с App \ Http \ Контроллеры \ MasterController \ CrudController :: Обновление ($ ID, App \ Http \ Запросы \ RequestInterface $ запросу)

Родительский класс Request реализует RequestInterface и PageRequest с Request, так что PageRequest имеет интерфейс RequestInterface, но ii получает эту ошибку.

ответ

1

Вы изменили параметры метода обновления. Метод в родительском классе ожидает объект $ request во втором слоте аргумента - вы передаете его первому, когда вы вызываете его из подкласса.

Смежные вопросы