php - 如何将Blade中的 bool 值传递给Vue组件Laravel 7?

标签 php laravel vue.js laravel-7

我正在尝试在Vue组件中使用true / false或1/0实现IF条件。我经历了一些较早提出的问题,但未能解决。请帮帮我。
即使IF提供truedd条件也不会提供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/

相关文章:

php - 周期性日历事件

php - MySQL查询错误处理日期字段

php - Swift - 将字典发送到服务器时格式错误的数据

jquery - 无法调用 ck-editor textarea(未捕获类型错误 : $(. ..)。ckeditor 不是函数)

laravel - 在 Laravel 中获取用户名和带有文章 id 的评论

javascript - 禁用 Vue Devtool 扩展提示

php - MySql LEFT 连接多个具有相同 ID 或名称的表

php - 两张 table 并排

javascript - 有没有办法检测作用域插槽是否传递给组件?

javascript - 如何配置Eslint缩进规则为3个空格?