在Windows上,cmd以管理员身份运行应用程序很容易:
Right click on cmd icon >> run as administrator`
Run Code Online (Sandbox Code Playgroud)
但我想使用PhpStorm terminal工具作为管理员,因为我经常不得不执行需要管理员角色的查询.
当我打开:
File >> Settings >> Tools >> Terminal
Run Code Online (Sandbox Code Playgroud)
我可以看到它是直接连接的cmd.exe,有些选项可以填写:
而且我看不到可以选择以管理员身份运行它的复选框.
质询
我即将开始使用Google 的日历 API,我要求访问我的用户的日历。在php 文档示例中,令牌存储在文件(token.json)中,但在我的情况下,每个用户都可以有一个访问令牌,所以我想将其存储在用户的数据库表中。
我想隐藏/wp-json/url,因为我不想让任何人知道该网站是建立在 wordpress 上的。我尝试在 中重写规则.htaccess,但/api只重定向到/wp-json所以这不是我真正想要的。
RewriteRule ^api/(.*)$ /wp-json/$1 [R,L]
Run Code Online (Sandbox Code Playgroud)
这些根本不起作用:
RewriteRule ^api$ /wp-json [L]
RewriteRule ^api/(.*)$ /wp-json/$1 [L]
Run Code Online (Sandbox Code Playgroud)
我也尝试过 site_url 钩子事件,但不幸的是它根本不起作用:
add_filter('site_url', 'api_filter', 10, 3);
function api_filter($url, $path, $orig_scheme) {
$old = array('/(wp-json)/');
$new = array('api');
return preg_replace($old, $new, $url, 1);
}
Run Code Online (Sandbox Code Playgroud) 假设我的access_control块下面是security.yml:
access_control:
- { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/reset-password, roles: IS_AUTHENTICATED_ANONYMOUSLY }
Run Code Online (Sandbox Code Playgroud)
在这种情况下,每个人都有权进入homepage和reset-password页面.但我想仅允许匿名身份验证的用户使用这些页面.完全通过身份验证的用户应该获得403 access denied error或404 page not found.
据资料与allow_if我应该ablo创建角色表达式定义访问.但如果我这样做:
access_control:
- { path: ^/reset-password, allow_if: "has_role('IS_AUTHENTICATED_ANONYMOUSLY') and not has_role('IS_AUTHENTICATED_FULLY')" }
Run Code Online (Sandbox Code Playgroud)
现在下面的想法完全验证的用户(登录)不应该被允许访问的页面和匿名认证应该能够访问,但可惜的是,没有任何用户都能够访问它...
我缺少什么想法?
UPDATE
通过正确的答案,正如以下建议的那样:
- { path: ^/reset-password, allow_if: "is_anonymous() and !is_authenticated()" }
Run Code Online (Sandbox Code Playgroud) 我想用DB中的选项显示选择.在这种情况下,我使用EntityType有query_builder:
$builder
->add('internships', EntityType::class, array(
'class' => 'IndexBundle\Entity\Internship',
'property' => 'id',
'empty_value' => 'Choose',
'query_builder' => function (EntityRepository $er) use ($trainee) {
return $er->createQueryBuilder('i')
->where('i.trainee = :trainee')
->andWhere('i.state = :state')
->setParameter('trainee', $trainee)
->setParameter('state', 'unverified');
},
'constraints' => array(
new NotBlank(array(
'message' => 'choice.not.blank'
))
)
))
Run Code Online (Sandbox Code Playgroud)
现在一切都很好.我select用id值的文本获得了必要选项的元素.
<select>
<option value="id">id</option>
...
</select>
Run Code Online (Sandbox Code Playgroud)
我该如何定制?
例如,我希望它是组合id和type表列:
<select>
<option value="id">#id (type)</option>
...
</select>
Run Code Online (Sandbox Code Playgroud) EntityType我的表单中有两个字段,并且都NotBlank分配了约束。
现在,我遇到了NotBlank一个问题,即约束不只对启用了一个字段起作用multiple => true。
$builder
->add('preferredCountries', EntityType::class, array(
'required' => false,
'class' => 'IndexBundle:Country',
'property' => 'name',
'empty_value' => 'Choose',
'multiple' => true,
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('c')
->where('c.name != :name')
->orderBy('c.name', 'ASC')
->setParameter('name', 'Other');
},
'constraints' => array(
new NotBlank(array(
'message' => 'blank!!!',
)),
)
))
->add('internshipProgram', EntityType::class, array(
'required' => false,
'class' => 'IndexBundle:InternshipProgram',
'property' => 'name',
'empty_value' => 'Choose',
'constraints' => array(
new NotBlank(array(
'message' => 'blank!!!', …Run Code Online (Sandbox Code Playgroud) 我在我的Controller中有这个方法,多次调用indexAction().我应该保持它原样,还是应该为它和其他可重用方法创建Helper类(服务),因为我可以避免传递诸如此类$em情况的参数?我无法理解服务的背景以及何时使用它们很舒服.
public function getProfile($em, $username, $password) {
$dql = $em->createQuery('SELECT Profiles FROM ProjectProjectBundle:Profiles AS Profiles WHERE Profiles.email = :email AND Profiles.password = :password')
->setParameters(array(
'email' => $username,
'password' => $password
));
return $dql->getArrayResult();
}
Run Code Online (Sandbox Code Playgroud) php ×4
symfony ×4
forms ×2
.htaccess ×1
access-token ×1
api ×1
class ×1
cmd ×1
constraints ×1
google-oauth ×1
helper ×1
oauth ×1
phpstorm ×1
terminal ×1
validation ×1
wordpress ×1