Итак, это мой первый LiveWire
обучающий проект.
Кстати, я создаю Компонент Livewire под названием Пользователь, используя php artisan make:livewire user
а потом вот что я получил
Первый User.php
<?php
namespace App\Http\Livewire;
use Livewire\Component;
class User extends Component
{
public function render()
{
return view('livewire.user.index'); //i've updated this
}
}
Итак, я хочу создать пользователя на разных страницах. ПРИМЕЧАНИЯ. Я уже использую турболинки для SPA, и когда я создаю как традиционный контроллер Laravel, например
Web.php
Route::get('/user', User::class)->name('user.index');
Route::get('/user/create',[User::class, 'create'])->name('user.create');
User.php (компонент livewire)
<?php
namespace App\Http\Livewire;
use Livewire\Component;
class User extends Component
{
public function render()
{
return view('livewire.user.index');
}
// This is what i create
public function create()
{
return view('livewire.user.create')
->extends('layouts.app')
->section('contents');
}
}
Он не предоставляет мне родительские шаблоны (он не запускается в layout.app и не переходит к содержимому, он просто показывает пустые страницы), я попытался расширить его с помощью layouts.app и секция
layout / app.blade.php
<div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }">
@include('layouts.include._sidebar')
<div class="flex flex-col flex-1 w-full">
@include('layouts.include._navbar')
<main class="h-full overflow-y-auto">
<div class="container px-6 mx-auto grid">
{{-- {{ $slot }} --}}
@yield('contents')
</div>
</main>
</div>
</div>
Мой вопрос:
можем ли мы сделать как стандартный контроллер laravel с общедоступной функцией создания внутри пользовательского компонента ИЛИ нам нужно создать новый компонент под названием UserCreate? Спасибо!