我在这里使用Laravel框架。我有一个复选框,单击该复选框时会调用javascript(Vue.js)函数,但只有在登录的人是admin的情况下才应执行此复选框。我有@admin指令,还有isAdmin()辅助函数,以确定该人是否是管理员。但是我怎么写这个而不必在输入字段重复两次?
看起来一个问题是我在另一个{{}}内写着{{}},而另一个问题是转义了单引号和双引号。
这是我的代码,我在其中重复字段两次。我想改变这个。
@admin
<input @click="save({{ $_GET["user_id"] }}, '{{ $_GET["date_from"] }}', '{{ $_GET["date_to"] }}')" type="checkbox" class="my-class green">
@else
<input type="checkbox" class="my-class green">
@endadmin
我希望能够将上面的代码更改为这样。但是我最终遇到语法错误。
<input {{ ( isAdmin() ) ? '@click="save({{ $_GET["user_id"] }}, '{{ $_GET["date_from"] }}', '{{ $_GET["date_to"] }}')" : '' }} type="checkbox" class="my-class green">
语法错误
syntax error, unexpected '?' (View: /var/www/php7/resources/Views/index.blade.php)
<input <?php echo e(( isAdmin() ) ? '@click="save({{ $_GET["user_id"]); ?>, '<?php echo e($_GET["date_from"]); ?>', '<?php echo e($_GET["date_to"]); ?>')" : '' }} type="checkbox" class="my-class green">
答案 0 :(得分:1)
如果您没有else
条件,则无需使用三元运算符。
<input type="checkbox"
class="my-class green"
@if(isAdmin()) @click="save({{ $_GET['user_id'] }}, {{ $_GET['date_from'] }}, {{ $_GET['date_to'] }})" @endif>
我会尝试这样的事情。如果长度超过80个字符,我还想将<input>
分成多行。这样比较容易阅读。