【问题标题】:incrementing variable by refreshing page in symfony通过在 symfony 中刷新页面来增加变量
【发布时间】:2020-08-06 05:00:07
【问题描述】:

您好,我正在尝试学习如何使用 symfony,所以我想出了一个想法,即制作一个页面,该页面显示一个在每次页面刷新时递增的数字。我也不想使用数据库,所以锻炼不是那么容易。我试图制作一个保存变量并增加它的服务,但由于我对 symfony 的理解很差,它没有工作:( 然后我尝试使用会话,但结果是一样的:((而且我没有主意了。 到目前为止我做了什么:

<?php

namespace App\Controller;


use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Addition\GlobalKeeper;

/**
 * Class counterController
 * @package App\Controller
 * @Route("/")
 */

class counterController extends AbstractController
{
    private $Gcounter;
    public function __construct()
    {
        $this->Gcounter = new GlobalKeeper();
    }

    /**
     * @Route("/")
     */
    public function Counter (){
        $this->Gcounter->startfordummy();
        $this->Gcounter->increment();
        return $this->render('home\insides.html.twig',
        [ 'num' => $this->Gcounter->getCounter()]);
    }
}

/////

<?php
 



namespace App\Addition;


use Symfony\Component\HttpFoundation\Session\Session;

class GlobalKeeper
{
    public $session;
    public function __constructor(){
        $session = new Session();
        $session->start();
        if(null !==$session->get("test")) $session->set("test",0);
    }
    public function startfordummy(){
 

           $session = new Session();
            $session->start();
            if(null !==$session->get("test")) $session->set("test",0);
        }
    
        public function getCounter()
        {
            return $this->session->get("test");
        }
    
        public function increment()
        {
            $this->session->set("test", $session->get("test") + 1);
        }
    }

此代码还会导致 在 null 上调用成员函数 set()

【问题讨论】:

    标签: php symfony session


    【解决方案1】:

    docs 太浪费了。

    class DefaultController extends AbstractController
    {
        /**
         * @Route("/counter", name="counter")
         */
        public function counter(SessionInterface $session)
        {
            $counter = $session->has('counter') ? (int)$session->get('counter') : 0;
            $counter++;
            $session->set('counter',$counter);
    
            return $this->render('default/counter.html.twig', [
                'counter' => $counter,
            ]);
        }
    }
    

    告诉你的导师,他们不仅在教你课程方面做得很糟糕,而且在教你如何搜索信息方面做得很糟糕。

    【讨论】:

    • 感谢我的朋友解决了我的问题:),实际上我没有导师,但你说得对,我应该先阅读文档。
    猜你喜欢
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 2011-01-27
    • 1970-01-01
    • 2015-11-02
    • 2023-03-19
    • 2011-11-07
    • 1970-01-01
    相关资源
    最近更新 更多