提问人:Rabie_Rabit 提问时间:11/17/2023 更新时间:11/17/2023 访问量:34
在服务器上以意想不到的方式处理刀片组件
Blade Components are being handled in unexpected ways on on the server
问:
所以这是我所知道的,我设置了一个刀片组件,似乎它在服务器上的处理方式比在我的本地处理的要差得多
我像这样调用组件:
<x-ui.form.text label="Email" name="email" :options='["required"=>"true"]'/>
然后这是组件(只有顶部(错误在dd()正下方引起)):
<div>
@php dd($attributes) @endphp
<div {{ $attributes->merge(['class'=>'col-12 mb-4']) }}>
<div class="row">
<div class="col-4 align-items-center d-flex justify-content-end">
<label for="{{ $name }}" class="form-label mb-0">{{ $label }} @if($options['required']) <i class="bi-exclamation-circle"></i> @endif </label>
</div>
<div class="col-8">
<div class="input-group has-validation">
@if($options['prepend'])
{{-- <div class="input-group-prepend border-dark"> --}}
<div class="input-group-text border-dark">{{ $options['prepend'] }}</div>
{{-- </div> --}}
@endif
<input value="{{ $value?$value:old($name) }}" class="border-dark block w-full form-control @error($name) is-invalid @enderror" type={{ $options['type'] }} id="{{ $name }}" name="{{ $name }}" aria-describedby="inputGroupPrepend" {{ $options["readonly"]?"readonly":"" }}>
@if($options['append'])
<div class="input-group-append">
<div class="input-group-text">{{ $options['append'] }}</div>
</div>
组件的另一部分如下所示:
public function __construct($name, $label, $value=false, $options = []) {
$this->options = array_merge([
"required" => false,
"type" => "text",
"readonly" => false,
"prepend" => false,
"append" => false,
], $options);
$this->name = $name;
$this->label = $label;
$this->value = $value;
$this->required = $this->options['required'];
}
组件边栏选项卡文件中的 dd 在我的 LOCAL env 上导致以下结果:
Illuminate\View\ComponentAttributeBag {#1482 ▼ // resources\views/components/ui/form/text.blade.php
#attributes: []
}
但是在服务器上,它会导致这种情况:
Illuminate\View\ComponentAttributeBag {#1405 ▼ // resources/views/components/ui/form/text.blade.php
#attributes: array:3 [▼
"label" => "Email"
"name" => "email"
"options" => []
]
}
在我的本地,它运行良好,没有问题,我什至在我的家庭媒体服务器上进行了结帐,看看它是否与 apache 服务器有关,但这似乎很好,它在那里也有效
- 本地运行 Windows 11
- 媒体服务器 Windows 10
- 托管 Linux
但是对于托管公司,它会导致此错误。
没有任何组件的页面工作得很好。
可能需要注意的事项:
- 我将组件文件夹从另一个项目复制到这个项目
- 我尝试添加/删除/交换数组的单引号和双引号
- 我尝试添加/删除/交换数组的单引号和双引号
- 我尝试删除组件(这有效,但前提是我删除了页面上的所有组件)
- 如果我删除选项属性,它会抱怨它没有设置,即使它在组件 php 文件中设置为默认值
- 我仔细/三重检查了 env 文件及其正确性(我看不出这是一个问题,因为没有组件的页面工作正常
- 我检查了路径和文件预判
- 我检查了作曲家包
一切看起来都很好
我不知道这是否会产生影响,但我的托管公司有一个 php8.0 的基本 php 版本
当我通过 SSH 连接到它们并运行 php -v 时,我得到了 8.0 版,但在我的控制面板上,我将其设置为 8.2,当从浏览器显示 phpinfo() 时,我看到 8.2 版在我需要使用的终端中运行 8.2 版。/usr/bin/php-wrapper
Composer 也是一个问题,他们运行 composer 的 v1,因为他们有仍在使用它的旧项目,但他们帮助我将 v2 安装到我的用户中,因此运行 composer 我需要使用它来做像 composer 更新一样的 somting,我需要在生成自动加载 composer 时合并其他行抱怨 php 版本很低,所以看起来像这样/usr/home/{username}/composer
/usr/bin/php-wrapper /usr/home/{username}/composer update --no-dev
关于为什么会发生这种情况的任何想法?
答: 暂无答案
评论