[英]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.