我正在尝试访问 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 组件(包括查询参数)?
有什么好方法让多个 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 的解决方案?
假设我有以下字符串:
cat I cat II cat III dog I dog III bird I
我想将所有字符串与 a 匹配I,但 NOTII或III.
所以正确的匹配会给我:
cat I
dog I
bird I
Run Code Online (Sandbox Code Playgroud)
我曾想过I在它之后匹配一个没有其他字符的字符,但也许有更直接的方法。
这种模式的正则表达式是什么?
我尝试在 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)
..但不确定在哪里/如何/注入什么才能使用它。
也许还有一个更简单的。
我的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”的用户组,在其中添加了我的工作和个人用户,并运行了以下命令: …
如何使用路由名称测试 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) 我正在尝试构建一个类,我可以轻松地将其放到一个元素上,该元素在渲染时会淡入视图,但当我设置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) 我正在尝试编写一个正则表达式,将包含大写字符的 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 文件中实现此重定向规则
我有一个带有授权服务的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文档中的正确实现.
我相信这是因为我试图从服务中重定向,而不是控制器.
如何从服务中重定向?