我正在尝试在Vue组件中使用true / false或1/0实现IF
条件。我经历了一些较早提出的问题,但未能解决。请帮帮我。
即使IF
提供true
,dd
条件也不会提供true
输出。
Controller (我尝试了两种方法,以便我可以在true / false或1/0上获得成功,在页面上的两种方法中我都可以在dd($ isExamAssigned)的情况下获得1/0或true / false。):
dd($isExamAssigned); // here I'm able to get 1 or 0
blade.php: <quiz-component
:isExamAssigned = "{{$isExamAssigned}}"
>
</quiz-component>
Component.vue的代码部分:props:['isExamAssigned'],
data(){
return{
isExamAssigned :this.isExamAssigned,
}
这是IF条件:<div v-if="isExamAssigned === '1'">
<!-- Code here for IF -->
</div>
<div v-else>
<!-- Code here for ELSE -->
</div>
我尝试了不同的方法来获取值,例如:<div v-if="isExamAssigned === 1">
<div v-if="isExamAssigned === true">
<div v-if="isExamAssigned">
但是我无法实现条件。谢谢。
最佳答案
您正在vue组件中将其设置为'1'
的字符串值。稍后,您必须严格将其与整数, bool(boolean) 值和 bool(boolean) 值进行比较。最正确的方法是像这样将其设置为真正的 bool(boolean) 值。您使用的第二种方法会起作用。
$isExamAssigned = DB::table('quiz_user')->where('user_id', $authUser)->where('quiz_id', $quizId)->exists();
现在,PHP类型变得很奇怪,如果您打印出$isExamAssigned
,它将打印出1。您可以尝试使用{{true}}
自己查看结果。为避免这种情况,设置组件时,请在 Blade 文件中进行以下检查。:isExamAssigned = "{{$isExamAssigned ? 'true' : 'false'}}"
这将使以下if语句起作用。<div v-if="isExamAssigned === true">
<div v-if="isExamAssigned">
关于php - 如何将Blade中的 bool 值传递给Vue组件Laravel 7?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63109076/