production should be the same package versions as local so you should only run composer install and never composer update on a production environment
Blade Components Acting diffirent on server
Hi All I would really apprceate the assistance here. This issue is posted to StackOverflow aswell so I copied and pasted the issue
So here is what I know I setup a blade component and it seems that its being handled diffirently on the server than on my local
im calling the component like this:
<x-ui.form.text label="Email" name="email" :options='["required"=>"true"]'/>
Then This is the component (only the top part (error is caused right below the 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>
The other part of the component looks like this:
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'];
}
the dd in the components blade file results in this on my LOCAL env:
Illuminate\View\ComponentAttributeBag {#1482 ▼ // resources\views/components/ui/form/text.blade.php
#attributes: []
}
But on the server it results in this:
Illuminate\View\ComponentAttributeBag {#1405 ▼ // resources/views/components/ui/form/text.blade.php
#attributes: array:3 [▼
"label" => "Email"
"name" => "email"
"options" => []
]
}
on my local it works perfectly without issues, I even did a checkout on my home media server to see if it had something to do with the apache server but that seems fine it works there aswell
- local runs windows 11
- media server windows 10
- hosting linux
but with the hosting company it causes this error.
Pages without any components on them works perfectly fine.
Things that might be of note:
- I copied component folders from another project over to this one
- I tried adding/removing/swapping the single and double quotes of the array
- I tried adding/removing/swapping the single and double quotes of the array
- I tried removing the component (this worked but only if I removed all the components on the page)
- If I remove the options attributes it complains its not set eventhough it is set to default in the component php file
- I double/triple checked the env file and its correct (I cant see that this is a issue because pages without components work fine
- I checked paths and file premissions
- I checked composer packeges
Everything looks right
I dont know if this will have a effect but my hosting company has a base php version of php8.0
when I SSH to them and I run php -v I get version 8.0 but on my control panel I have it set to 8.2, when displaying phpinfo() from the browser I see version 8.2 to run version 8.2 in terminal I need to use /usr/bin/php-wrapper.
Composer was also a issue they run v1 of composer because they have old projects that still use it but they assisted me with installing v2 to my user so running composer I need to use this /usr/home/{username}/composer doing somting like composer update I need to combine the lines else when generating the auto load composer complains about the php version being to low so that looks something like this /usr/bin/php-wrapper /usr/home/{username}/composer update --no-dev
Any ideas on why this would be happening?
Please or to participate in this conversation.