无法访问视图内的 Blade 组件变量

2024-04-27

我在 Laravel 中遇到了这个非常奇怪的问题。

我遇到一个问题,我的组件视图之一无法读取其类中定义的变量。 这有点奇怪,因为我的项目中运行了几个组件,除了这个之外,它们都工作正常。

所以我创建了一个新的 Laravel 项目来测试一些东西(想检查问题是否出在我这边,也许我以某种方式弄乱了项目文件)。

我使用在空白项目上创建了一个新组件php artisan make:component Test

然后我简单地将一个测试变量添加到类组件中,如下所示:

<?php

namespace App\View\Components;

use Illuminate\View\Component;

class Test extends Component
{

    public $test;

    /**
     * Create a new component instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->test = "testing";
    }

    /**
     * Get the view / contents that represent the component.
     *
     * @return \Illuminate\View\View|string
     */
    public function render()
    {
        return view('components.test');
    }
}

并尝试在视图中访问它,如下所示:

<div>
    <p> {{$test}} </p>
</div>

由于某种原因,这不起作用,我不明白为什么。它只是说$test未定义。 也许我应该指出,我是 Laravel 的初学者,所以如果我犯了一些明显的错误,请原谅。这看起来很奇怪,这不适用于一个空白项目。

先感谢您。


事实上,所有的答案都是误导性的。这$test属性已经是公共的,因此可用于模板。请不要手动向视图添加参数。

我刚刚遇到了类似的问题,虽然我可以肯定地说它与组件类名有关,但我无法追踪它,因为它又神奇地开始工作了。

对此我能说的是:

  • 我有一个具有相同基类名但不同命名空间的类,删除了非组件类,然后突然该组件被呈现为匿名组件,完全绕过组件类。 (您可以通过在组件类构造函数中放置 dd() 来轻松验证这一点。)

  • 我的第一个想法是自动加载器需要刷新,但是composer dump没有改变任何东西。

  • 将组件类和模板重命名为其他名称解决了该问题。

  • 当我想追踪错误时,我将类和模板重命名回原来的名称,但现在它突然起作用了......

  • 我的猜测是视图缓存导致了问题。从我更换 x 刀片的那一刻起它就起作用了(<x-component-name ... />)在包含该组件的模板中。因此,这个问题似乎神奇地消失了,因为缓存的视图由于模板更改而被替换。

因此,基于此,解决问题的最佳选择是:

  1. 验证您的属性是public,如果它们是,它们将不会在您的模板中可用protected or private.
  2. 清除缓存,尤其是。视图缓存(php artisan view:clear).
  3. 转储自动加载机 (composer dump).
  4. 验证您的类是否确实被使用。放一个dd()在你的构造函数中。如果您仍然从模板中收到错误,则 Blade 正在绕过您的类并尝试将您的模板用作匿名组件。
  5. 将组件重命名为其他名称以查看类名是否冲突。

希望对遇到这个令人困惑的问题的人有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法访问视图内的 Blade 组件变量 的相关文章

  • PHP memcache - 检查池中是否有可用的服务器?

    我有以下代码 cluster local array host gt 192 168 1 1 port gt 11211 weight gt 50 cluster local2 array host gt 192 168 1 2 port
  • PHP文件上传错误tmp_name为空

    我的文件上传遇到这个问题 我尝试在检查验证时上传 PDF 文件TMP NAME是空的 当我检查时 FILES document attach error 该值为 1 意味着存在错误 但当我尝试上传其他 PDF 文件时 它已成功上传 为什么其
  • 准备好的语句什么时候会失败? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我一直在搞乱MySQLi对象在PHP 并且习惯于在执行语句之前准备语句 到目前为止 我主要做了以下事情 if stmt mysqli
  • Laravel 如何使用查询生成器返回单列值

    我想使用 SQL 查询中的数据 为了进一步解释它 这里是我的代码 myquery DB table attendances gt select user id gt where date only newdate gt orderBy lo
  • 防止刷新时提交双重表单

    我有一个简单的问题 我知道当用户使用 Post Redirect Get 模式重新加载页面时 我可以防止表单重新提交自身 但我的问题是 如果我将用户重定向回提交表单的同一页面 这种模式是否有效 我的意思是 我不想将用户重定向到另一个页面 请
  • Tomcat 8 上的 PHP

    我找到了很多如何让 PHP 在 Tomcat 上运行的指南 但都是以前的版本 我尝试了所有这些 但我所能显示的只是一个空白页面 并且代码仍然没有被触发 我知道 Tomcat 是为 Java 应用程序而不是 PHP 构建的 但我需要找到一种使
  • Yii:按条件进行多重排序

    我正在使用 CActiveDataprovider 显示来自不同表的数据 现在我遇到了一个问题 我有两个表 项目和类别 它们都有priority order 列 我需要使用这两个列的顺序来显示数据 例如 有两个类别和属于这些类别的六个项目
  • PHP ajax使用新数组上传多个文件

    它是我的上传 html 代码 div class col xs 12 div
  • 如何将 PHP 会话数据保存到数据库而不是文件系统中?

    我有两个网站 一个是 TLS 一个不是 两个都适用于同一个客户端 但我需要这些网站彼此 并且仅彼此 共享通用数据users orders accounts etc 这通常可以通过以下方式完成 SESSION数据 但我显然这些不能跨其他站点工
  • 如何使用 Laravel Scheduler 命令将输出重定向到 STDOUT?

    我的调度程序应用程序运行到 Docker 容器中 Laravel 调度程序由主管管理并执行到容器中 我通过以下方式管理输出重定向 http veithen github io 2015 01 08 supervisord redirecti
  • waitUntilObjectExists() Amazon S3 PHP SDK 方法,它到底是如何工作的?

    该函数是否会暂停 php 脚本 直到在 s3 服务器上找到该对象 我将它放在 foreach 循环中 一张一张地上传图像 找到对象后 我调用一个方法在本地删除图像 然后删除本地文件夹 如果为空 这是正确的处理方式吗 谢谢 foreach f
  • 从 BitBucket 请求 OAuth 令牌

    在过去的 4 个小时里 我一直在尝试将 BitBucket 集成到我的应用程序中 但没有成功 在阅读的过程中BitBucket 的 RESTful API 文档 https confluence atlassian com display
  • 如何获取每个类别(例如 WooCommerce 后端)的产品数量?

    我正在建立一个新网站 我对 Woocommerce 非常满意 我只需要一个快速技巧来获取每个类别中的产品数量 我已经调出了每个产品的类别 但无法弄清楚如何从该类别中获取产品数量 我有一个适合我的产品的列表样式 实际上是活动网站的活动 查看图
  • 带有 WCF BadContextToken 的 PHP Soap 客户端

    经过几天的谷歌 in 尝试 脱发 我仍然找不到解决方案 所以请帮助 简短信息 我需要使用 PHP SOAP 客户端 的 WCF 服务 它使用 wsHttpBinding ws security 并且无法设置 basicHttpBinding
  • 如何通过 PEAR 安装旧版本的 PHPUnit?

    我想将 PHPUnit 3 4 的安装降级到 3 3 我只是不知道该怎么做 如何使用 PEAR 在 Ubuntu 上安装 PHPUnit 3 3 版本 您需要知道要降级到的确切版本号 在撰写本文时 您所使用的最后一个版本是 3 3 17 可
  • 循环遍历多维数组

    我有一个与此类似的 JSON 文件 Pages Name Home Page index php admin Name Admin Page admin index php Template admin MobileTemplate adm
  • 解决多个 jQuery 文件之间的冲突

    我的项目中有多个 jquery 文件 我正在使用jquery1 4 2使用facebox 但我也需要原型和scriptacolous脚本 我用过 jQuery noconflict 在我的代码中 但它不起作用 这是网址http mlep c
  • ECHO MYSQL 结果显示空白页 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我知道这一定很简单 但我做不到 我需
  • SQLSTATE[HY000] [2002] 连接尝试失败,因为连接方在一段时间后没有正确响应,

    我尝试连接 2 个数据库Laravel 5 6项目 但我遇到这样的错误 SQLSTATE HY000 2002 连接尝试失败 因为连接方在一段时间后没有正确响应 或者由于连接的主机未能响应而建立的连接失败 SQL 从中选择 mt merch
  • PHP - 从图像创建一张图像

    我有 n 张图像 想用 php 代码创建一张 我使用 imagecopymerge 但无法成功 请举一些例子 Code numberOfImages 3 x 940 y 420 background imagecreatetruecolor

随机推荐

  • Phing,调用命令将其输出放入属性中

    我有一个脚本可以查找并输出或将我当前的版本 写入文本文件 现在唯一的问题是如何将此版本号放入 PHING 属性中 现在我的 PHING 目标构建 build zip 和built tar 我希望它构建 build 1 0 0 zip 或版本
  • Android:ViewFlipper动画

    我添加了一个 ViewFlipper 其中有 2 个线性布局 并且我制作了一个动画 xml left in xml
  • 可以分配给一个 Heroku 应用程序的最大域名数量?

    我正在与一位客户讨论一个项目 该客户希望他的用户可以通过自己的域名访问该应用程序 如果他们选择的话 可以分配给一个 Heroku 应用程序的自定义域数量是否有限制 The Heroku 文档 https devcenter heroku c
  • 使用故事板视图控制器创建编程选项卡栏?

    我有一个以编程方式创建的选项卡栏 并且在初始化与视图关联的故事板时遇到困难 我能够在没有故事板的情况下在选项卡栏中成功加载视图 请参阅下面的代码 但视图仅部分显示 因为某些 UI 组件位于故事板中 我的故事板的名称是 Main Storyb
  • matplotlib 中的自定义对数轴缩放

    我正在尝试使用 math log 1 x 来缩放绘图的 x 轴 而不是通常的 log 缩放选项 并且我已经查看了一些自定义缩放示例 但我无法得到我的上班 这是我的 MWE import matplotlib pyplot as plt im
  • 升级到 NHibernate 3.1 时 NHibernate 映射中断

    我最近刚刚升级到 FluentNHibernate 1 2 它使用 NHibernate 3 1 升级后 我的一些旧映射无法正常工作 我一直很难弄清楚为什么 我想也许这里有人可以提供帮助 我有 3 个课程 练习 练习和练习练习 一个练习可以
  • Java用Rhino调用JS(未定义Uint8Array)

    我正在尝试使用 Rhino 库从 java 代码调用一些 javascript 但它似乎对类型化数组感到窒息 这是我的简单js文件 function decrypt version iv encryptedBuffer var output
  • 如何将png二进制数据放入img标签中并将其显示为图像?

    我正在用这个 ajax type GET url template bump1 purse png datatype image png success function data var reader new FileReader rea
  • 使用 bitbake 为 BBB 构建 .dtbo 覆盖

    我使用内核 linux ti staging 4 14 和自定义设备树为我的 BBB 构建了 yocto 发行版 rocko 由于我需要将一个旧项目从 Debian 移植到 Yocto 因此我还需要在内核中启用 UIO 功能 这也可以正常工
  • Eclipse XSD 编辑器

    如何启动或安装 Eclipse XSD 编辑器 根据this http wiki eclipse org index php Introduction to the XSD Editor看来它应该开箱即用 我创建了XMLExamples项目
  • Python Mysql 连接器未获取新内容

    我制作了一个简单的 python 脚本 它每 x 秒检查一次 mysql 表并将结果打印到控制台 我使用 MySQL 连接器驱动程序 但是 运行脚本仅打印初始值 我的意思是 如果我在脚本运行时更改数据库中的值 脚本不会注册它 并且它会继续写
  • Google Cloud SQL:SQLSTATE [HY000] [2013]在“读取初始通信数据包”时丢失与 MySQL 服务器的连接,系统错误:0

    自从我的 Google Cloud SQL 实例宕机后 我感到绝望 我昨天可以毫无问题地连接到它 但从今天早上开始我无法以任何方式连接到它 它会产生以下错误 数据库服务器返回此错误 SQLSTATE HY000 2013 在 读取初始通信数
  • Pygame 让对象追逐光标

    过去几个小时一直在做这个 试图制作一个小程序 其中图像追逐光标 到目前为止 我已经设法使图像直接位于光标上方并沿着该方向移动 然而 我需要的是图像真正 追逐 光标 因此它需要最初远离光标 然后在它后面运行 直到它位于鼠标之上 基本上 我遇到
  • Applescript:修剪空格和回车线

    我编写了一个 AppleScript 它从用逗号分隔的文本文件中返回一个随机字符串 set some file to Macintosh HD Users Zade Library Application Support Notationa
  • 如何禁用 yii2 ActiveFrom dropDownList 中的一项?

    Yii2 活跃形式 我想禁用选项2 gt 2 有办法做到吗 您可以使用 选项 键为下拉列表中的所有项目添加属性 假设您想禁用第二项 在文档中 http www yiiframework com doc 2 0 yii helpers bas
  • “没有为 JavaScript 文件指定有效规则”是什么意思?

    我有一个使用以下命令创建的 React Typescript create react app my app scripts version react scripts ts 它编译得很好 但每次我看到此消息或警告时 No valid ru
  • 如何通过单击 Android 中的 ImageView 从一个片段移动到另一个片段?

    我有一个图像视图 我想通过单击 Imageview 从一个片段移动到另一个片段 就像我们可以使用从一个活动移动到另一个活动一样 Intent i new Intent MainActivity this SecondActivity cla
  • 使用 CoreMotion 在后台获取加速度计数据

    尽管这个问题的解决方案看似正确 但我无法在后台接收加速度计数据iPhone 上的 Nike GPS 如何在后台接收加速度计更新 https stackoverflow com questions 8716466 how nike gps o
  • Python 集合上的迭代顺序

    我正在解析两个大文件 GB 大小顺序 每个文件包含keys以及对应的values Some keys在两个文件之间共享 但对应的不同values 对于每个文件 我想写入一个新文件keys 以及对应的values with keys 代表 f
  • 无法访问视图内的 Blade 组件变量

    我在 Laravel 中遇到了这个非常奇怪的问题 我遇到一个问题 我的组件视图之一无法读取其类中定义的变量 这有点奇怪 因为我的项目中运行了几个组件 除了这个之外 它们都工作正常 所以我创建了一个新的 Laravel 项目来测试一些东西 想