symfony — расширение CRUD-контроллера в sonata admin и проблемы со стандартами PHP Strict

Я использую последний (dev-master) администратор сонаты и хочу создать свой собственный метод createAction () для администратора сонаты. Я должен сделать это, потому что я хочу сохранить некоторую информацию о пользователях при добавлении в базу данных.

Мой пользовательский контроллер — S \ CoreBundle \ Controller \ NewsAdminConroller.php

<?php
namespace S\CoreBundle\Controller;
use Sonata\AdminBundle\Controller\CRUDController as Controller;
use Symfony\Component\Security\Core\SecurityContextInterface;class NewsAdminController extends Controller
{
/**
* Set the system user ID
*/
private function updateFields($object)
{
//some code - this is my own method
}

public function createAction(Request $request = null)
{
//code for create ... it's almost the same as default code.
}
}

CRUD по умолчанию — Sonata \ AdminBundle \ Controller \ CRUDController.php:

class CRUDController extends Controller
{
public function createAction(Request $request = null)
{
//...
}
}

Оба метода createAction () имеют одинаковые аргументы, имя …

И это бросает мне ошибку:

Строгие стандарты PHP: объявление S \ CoreBundle \ Controller \ NewsAdminController :: createAction () должно быть совместимо с Sonata \ AdminBundle \ Controller \ CRUDController :: createAction (Symfony \ Component \ HttpFoundation \ Request $ request = NULL) в / home / mark /dev/project/src/S/CoreBundle/Controller/NewsAdminController.php в строке 129

1

Решение

Sonata\AdminBundle\Controller\CRUDController::createAction(Symfony\Component\HttpFoundation\Request $request = NULL)

Нуждается в Request Object, но если вы не объявите это, это указывает на S\CoreBundle\Controller\Request

Просто добавь
"use Symfony\Component\HttpFoundation\Request;" в верхней части файла.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]