Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony2.6-服务_Symfony - Fatal编程技术网

Symfony2.6-服务

Symfony2.6-服务,symfony,Symfony,几个月以来我学会了Symfony2 我已经创建了一个服务。当我在一个简单的控制器中使用它时,我没有问题。当我在管理实体的控制器中使用它时,我遇到了一个问题 我的服务是: <?php namespace Cours\BlogBundle\Services; class Service1 { public function creerSlug($texte) { $texte = transliterator_transliterate("Lat

几个月以来我学会了Symfony2

我已经创建了一个服务。当我在一个简单的控制器中使用它时,我没有问题。当我在管理实体的控制器中使用它时,我遇到了一个问题

我的服务是:

<?php
namespace Cours\BlogBundle\Services;
class Service1
{
    public function creerSlug($texte)
    {        
        $texte = transliterator_transliterate("Latin-ASCII; [:Punctuation:] Remove; Lower();", $texte);
        $texte = preg_replace('/[-\s]+/', '-', $texte);
        $texte = trim($texte, '-');
        return $texte;
    }
}
我的观点告诉我,我的鼻涕虫不可能是空的

我认为我的行为有错误,但我找不到

有人帮我吗

非常感谢你的吻

改变

    $service1 = $this->container->get('service1');
    $slug = $serviceSlug->creerSlug($texte);


我建议注释/删除
$rubrique=$form->getData()$texte=$rubrique->getTexte()
ajoutraction
手动设置文本(仅用于测试目的):

如果有效,您可以在表单类型的
texte
字段中设置一些验证,以防止输入无效值


此外,我建议使用一些库(可能是一个不错的选择),而不是自己处理这个过程

你好,谢谢你的回答。创建此主题时,我犯了一个复制/粘贴错误$service1=$this->container->get('service1')$slug=$service1->creerSlug($texte);表格中未填写段塞。所以,$slug=$rubrique->setSlug($slug);填充属性slug。我在我的实体中为slug使用了@Assert\NotBlank(),当我完成表单时不使用slug。我不知道怎样才能把这个话题放到已解决的话题中。KISSESvar_转储slug并查看creerSlug函数返回的值是否实际不为空。如果它是空的(最有可能是这种情况),那么您就有了罪魁祸首,测试您的函数是
$rubrique->gettext()返回值?这是一个简单的调试问题。我不知道什么是音译。你为什么不写一个测试呢<代码>$this->assertThat($service->creerSlug(“-abc def ghi--jkl”),$this->equalTo(“abc def ghi jkl”)?您可以使用PHPUnit的提供者技术来检查许多输入和预期输出。
public function ajouterAction(Request $request)
{
    $rubrique = new Rubrique();
    $form = $this->createForm(new RubriqueType(), $rubrique);        
    if ($request->isMethod('POST'))
    {
        $form->handleRequest($request);
        if ($form->isValid())
        {
            $manager = $this->getDoctrine()->getManager();
            $rubrique = $form->getData();
            $texte = $rubrique->getTexte();
            $service1 = $this->container->get('service1');
            $slug = $serviceSlug->creerSlug($texte);
            $slug = $rubrique->setSlug($slug);
            $manager->persist($rubrique);
            $manager->flush();
            return $this->redirect($this->generateUrl('cours_blog_accueil'));
        }
    }
    return $this->render('CoursBlogBundle:Rubrique:ajouter.html.twig', array('form' => $form->createView()));
}
    $service1 = $this->container->get('service1');
    $slug = $serviceSlug->creerSlug($texte);
    $serviceSlug = $this->container->get('service1');
    $slug = $serviceSlug->creerSlug($texte);
if ($form->isValid())
{
    $manager = $this->getDoctrine()->getManager();
    // $rubrique = $form->getData();
    // $texte = $rubrique->getTexte();

    $rubrique->setTexte('Some text');

    $service1 = $this->get('service1');

    $slug = $service1->creerSlug($rubrique->getTexte());
    ...