[英]Pass Variable from Index View to Show View in Laravel 8 & Blade
不知道我錯過了什么,但我似乎無法從我的index.blade.php
視圖到我的show.blade.php
視圖中獲取變量。
我不斷收到錯誤Undefined variable: usercar...
Livewire/首頁/index.php
<?php
namespace App\Http\Livewire\Home;
use App\Models\User;
use App\Models\Car;
use App\Models\Usercar;
use Livewire\Component;
use Livewire\WithPagination;
use Illuminate\Database\Eloquent\Builder;
class Index extends Component
{
use WithPagination;
public $perPage = 25;
public $sortAsc = true;
public $search;
protected $queryString = ['search'];
public function render()
{
$usercars = Usercar::with('user')
->where('year', 'like', '%'.$this->search.'%')
->orwhereHas('user', function (Builder $query) {
$query->where('first_name', 'like', '%'.$this->search.'%');
$query->orWhere('last_name', 'like', '%'.$this->search.'%');
$query->orWhere('drivers_number', 'like', '%'.$this->search.'%');
$query->orwhereHas('region', function (Builder $query) {
$query->where('region_name', 'like', '%'.$this->search.'%');
});
})
->orwhereHas('car', function (Builder $query) {
$query->where('model', 'like', '%'.$this->search.'%');
})
->paginate($this->perPage);
return view('livewire.home.index', compact('usercars'))
->layout('layouts.frontend');
}
}
Livewire/首頁/show.php
<?php
namespace App\Http\Livewire\Home;
use Livewire\Component;
class Show extends Component
{
public function render()
{
return view('livewire.home.show')
->layout('layouts.frontend');
}
}
livewire/home/index.blade.php
...
@foreach($usercars as $usercar)
...
<a href="{{route('home.show', $usercar->id)}}">View Car</a>
...
@endforeach
...
livewire/home/show.blade.php
...
<div>
{{$usercar->car_color}}
</div>
...
web.php
...
Route::get('/', App\Http\Livewire\Home\Index::class)->name('home.index');
Route::get('/{usercar}', App\Http\Livewire\Home\Show::class)->name('home.show');
...
當然,您必須將 url 段傳遞給 controller 和視圖:
<?php
namespace App\Http\Livewire\Home;
use Livewire\Component;
class Show extends Component
{
public function render($usercar)
{
return view('livewire.home.show', [ 'usercar' => $usercar ])
->layout('layouts.frontend');
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.