小编yev*_*evg的帖子

如何在 Symfony 4 中获取查询字符串

我正在尝试访问 Symfony 4 中的查询字符串参数

namespace App\Controller;

use Symfony\Component\HttpFoundation\RequestStack;

class Home extends Controller {

    private $request;

    public function __construct(RequestStack $request){

        $this->request = $request;
    }

    public function getQueryString(){

       $req = $this->request->getCurrentRequest();

       print_r($req); // see all the request data

       // $req -> grab the query parameters
       // return query parameters
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用并且当我打印结果(包括我需要的查询参数)RequestStack时能够看到一堆请求数据,但是大多数方法都是并且我无法访问它们。getCurrentRequest()private

如何在 Symfony 中获取请求 URL 组件(包括查询参数)?

php request symfony php-7.2 symfony4

4
推荐指数
1
解决办法
1万
查看次数

多个 div 跨越父级的高度

有什么好方法让多个 div 跨越其父级包含 div 的高度(作为固定高度)

请看下图:

在此输入图像描述

这是建议的标记:

<div class="parent">

   <div class="child"> div1 </div>

   <div class="child"> div2 </div>

   <div class="child"> div3 </div>

</div>
Run Code Online (Sandbox Code Playgroud)

子 div 应该始终填充父 div 的整个高度,无论它们有多少个,但它们的高度不需要相等,并且应该根据其内容进行更改。

因此,如果一个内容很多,它就会更大,其余的会相应调整。

我已经使用表格完成了此操作,但认为可能有一些简单的方法可以仅使用 div 来完成此操作,这将是有利的,因为它们对于响应式布局来说更通用。

有没有一个纯 CSS 的解决方案?

html javascript css jquery

2
推荐指数
1
解决办法
1714
查看次数

正则表达式匹配字符串中的最后一个字符

假设我有以下字符串: cat I cat II cat III dog I dog III bird I

我想将所有字符串与 a 匹配I,但 NOTIIIII.

所以正确的匹配会给我:

cat I
dog I
bird I
Run Code Online (Sandbox Code Playgroud)

我曾想过I在它之后匹配一个没有其他字符的字符,但也许有更直接的方法。

这种模式的正则表达式是什么?

regex

2
推荐指数
3
解决办法
3万
查看次数

获取 Symfony 服务中的路由名称

我尝试在 Symfony 4 服务中获取当前路由的名称。

路线.yaml

test-route:
    path: /test
    controller: App\Controller\Test::test
Run Code Online (Sandbox Code Playgroud)

服务

class Myservice {

    private $u;

    public function __construct(Utilities $u){

        $this->u = $u;

        $route = getRouteSomehow(); // should return "test-route"
    }
}
Run Code Online (Sandbox Code Playgroud)

我找到了这段代码来抓取路线:

$requestStack->getCurrentRequest()->get('_route');
Run Code Online (Sandbox Code Playgroud)

..但不确定在哪里/如何/注入什么才能使用它。

也许还有一个更简单的。

php symfony symfony-routing php-7 symfony4

2
推荐指数
1
解决办法
3154
查看次数

多用户Mac上Watchman的Homebrew权限

我的Macbook Pro上有两个运行macOD Mojave 10.14.2的用户-一个用于工作,另一个用于个人。

我在安装了react native cli和watchman的两个用户上都设置了React Native

brew install watchman

sudo npm install -g react-native-cli

这有效,我能够使用 npm start

我尝试对其他用户执行相同操作,但由于权限问题而无法使用自制软件安装watchman。

我跑了以下

sudo chown -R $(whoami):admin $(brew --prefix)/*

这样就解决了。我再次能够运行本地开发服务器。


除非现在返回其他用户,否则无法再次运行服务器。

运行时出现以下错误 npm start

Loading dependency graph...libc++abi.dylib: terminating with uncaught exception of type std::__1::system_error: open: /usr/local/var/run/watchman/yev-state: Permission denied

Watchman: watchman --no-pretty get-sockname returned with exit code=null, signal=SIGABRT, stderr= libc++abi.dylib: terminating with uncaught exception of type std::__1::system_error: open: /usr/local/var/run/watchman/yev-state: Permission denied

sudo chown -R $(whoami):admin $(brew --prefix)/*再次尝试运行,但这次没有解决。

我还查看了如何为多用户macs配置Homebrew,并找到了这篇简短的文章

我创建了一个名为“ brew”的用户组,在其中添加了我的工作和个人用户,并运行了以下命令: …

permissions macos homebrew watchman react-native

2
推荐指数
1
解决办法
401
查看次数

检查 Symfony 4 中是否存在路由

如何使用路由名称测试 Symfony 4 中是否存在给定路由。

路线.yaml

home:
  path: /
  controller: App\Controller\Home::index
  methods: [GET]

login:
  path: /login
  controller: App\Controller\Login::index
  methods: [GET]
Run Code Online (Sandbox Code Playgroud)

控制器(在这里编写一个exists()方法)

$routes->exists('home'); // true
$routes->exists('login'); // true
$routes->exists('foo'); // false
Run Code Online (Sandbox Code Playgroud)

php routes symfony php-7 symfony4

2
推荐指数
1
解决办法
5676
查看次数

CSS淡入、即时隐藏

我正在尝试构建一个类,我可以轻松地将其放到一个元素上,该元素在渲染时会淡入视图,但当我设置display为“无”时会立即隐藏它。

到目前为止,我构建的类将元素淡入视图中,但隐藏或元素淡入隐藏也有轻微的延迟。

到目前为止,我已经使用了该类的动画fadeIn

@keyframes fadeIn {
   from    { opacity: 0; }
   to      { opacity: 1; }
}

.fadeIn { 
   animation: fadeIn 0.2s both ease-in; 
}
Run Code Online (Sandbox Code Playgroud)

这个淡入但隐藏时有延迟

另一种看起来像这样:

.fade-show {
   opacity: 1;
   transition: opacity 2s ease-in;
   -moz-transition: opacity 2s ease-in;
   -webkit-transition: opacity 2s ease-in;
}
Run Code Online (Sandbox Code Playgroud)

这实际上并没有淡入和延迟隐藏。

我只是希望某些东西在渲染或display设置为时淡出block,但在display设置为时立即隐藏none

该类的用法如下:

<div class="fadeIn" >I fade in but dont fade on hide</div>
Run Code Online (Sandbox Code Playgroud)

html css fadein css-transitions css-animations

1
推荐指数
1
解决办法
1万
查看次数

如何在 .htaccess 中将 URL 从大写重写为小写

我正在尝试编写一个正则表达式,将包含大写字符的 URL 重写为相同的 URL,但全部为小写。

例子:

example.com/foO-BAR-bAz重写为example.com/foo-bar-baz

example.com/FOO-BAR-BAZ重写为example.com/foo-bar-baz

example.com/foo-bar-baz 不匹配

我尝试^\/(?=.*[A-Z])将字符串与至少一个大写字符匹配,但它与完整字符串不匹配。我也知道我需要使用“捕获组”,但我不确定如何使用。

我将在 Apache 服务器的 .htaccess 文件中实现此重定向规则

regex apache .htaccess mod-rewrite url-rewriting

1
推荐指数
1
解决办法
1628
查看次数

Symfony PHP - 从服务中重定向

我有一个带有授权服务的Symfony 4应用程序,我想处理一些更高级别的逻辑,以确定给定用户是否可以访问给定路由.

我实现了这个 BaseController

namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

use App\Services\Authorize;

class BaseController extends Controller {

    private $auth;

    public function __construct(Authorize $auth){

        $this->auth = $auth;
    }

    public function initBaseController() {

        $this->auth->do_authorize();
    }      
}
Run Code Online (Sandbox Code Playgroud)

Authorize服务是这样的:

namespace App\Services;

use Symfony\Component\HttpFoundation\RedirectResponse;
use App\Services\Session;

class Authorize {

    private $session;

    public function __construct(Session $session){

        $this->session  = $session;
    }

    public function do_authorize(){

        if($this->session->validate('fake_token'){

            return $this->redirectToRoute('login-portal'); // ** ERROR **
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

因此,BaseController如果会话不存在或使用Authorize服务无效,则使用和重定向到登录页面全局实现此过程.

但是重定向行会抛出错误,尽管这是关于此主题的symfony文档中的正确实现.

我相信这是因为我试图从服务中重定向,而不是控制器.

如何从服务中重定向?

php service symfony php-7.1 symfony4

-1
推荐指数
1
解决办法
454
查看次数