Php LaravelLivewire 2:我们是要制作一个新的类,还是像传统的控制器一样
这是我的第一个LiveWire学习项目 说到这里,我正在使用php artisan make:Livewire User制作一个名为User的Livewire组件 这就是我得到的 First User.php User.php livewire组件Php LaravelLivewire 2:我们是要制作一个新的类,还是像传统的控制器一样,php,laravel,controller,components,laravel-livewire,Php,Laravel,Controller,Components,Laravel Livewire,这是我的第一个LiveWire学习项目 说到这里,我正在使用php artisan make:Livewire User制作一个名为User的Livewire组件 这就是我得到的 First User.php User.php livewire组件 public $email, $name; public $user; public $option = ''; public function mount($user = null) { if(is_null($user)) { //
public $email, $name;
public $user;
public $option = '';
public function mount($user = null)
{
if(is_null($user)) {
// some initialization
$this->option = 'create';
}
else {
$this->user = User::find($user);
$this->option = 'edit';
}
}
public function render()
{
return view('user-form');
}
public funcion store()
{
if($this->option == 'create') {
//create handler
}
else {
//edit handler
}
}
它没有给我父模板,它没有运行到layouts.app并转到内容,它只显示空白页面,我尝试用layouts.app和该部分扩展它
布局/app.blade.php
我的问题:
我们可以像standart laravel控制器一样在用户组件中创建公共功能,还是必须创建一个名为UserCreate的新组件?谢谢 您可以使用livewire作为完整页面组件或在视图中加载的组件 您只能使用Livewire生成的controller User.php,也可以使用经典的Laravel控制器,从中返回刀片视图,并在刀片视图中使用加载Livewire组件
在您的情况下,我认为在render方法中,您必须返回livewire.user,并在刀片视图中如上所述加载它。您可以使用livewire作为完整页面组件或在视图中加载的组件 您只能使用Livewire生成的controller User.php,也可以使用经典的Laravel控制器,从中返回刀片视图,并在刀片视图中使用加载Livewire组件
在您的情况下,我认为在渲染方法中,您必须返回livewire.user,并在刀片视图中如上所述加载它。您可以通过不同的方式处理此问题,具体取决于您。 可以使用UserForm组件来处理创建/编辑表单,并在用户的create component调用中呈现UserForm组件以创建新表单
public function create()
{
return redirect()->route('user.create');
}
在web.php中
Route::get('/user/create', [UserForm::class])->name('user.create');
Route::get('/user/edit/{user?}', [UserForm::class])->name('user.edit');
和用户表单组件
public $email, $name;
public $user;
public $option = '';
public function mount($user = null)
{
if(is_null($user)) {
// some initialization
$this->option = 'create';
}
else {
$this->user = User::find($user);
$this->option = 'edit';
}
}
public function render()
{
return view('user-form');
}
public funcion store()
{
if($this->option == 'create') {
//create handler
}
else {
//edit handler
}
}
取而代之的是使用重定向,您可以使用模态并在用户组件中的模态中呈现UserForm。正如我告诉过你的,这可以通过不同的方式来完成你可以通过不同的方式来处理,这取决于你自己。 可以使用UserForm组件来处理创建/编辑表单,并在用户的create component调用中呈现UserForm组件以创建新表单
public function create()
{
return redirect()->route('user.create');
}
在web.php中
Route::get('/user/create', [UserForm::class])->name('user.create');
Route::get('/user/edit/{user?}', [UserForm::class])->name('user.edit');
和用户表单组件
public $email, $name;
public $user;
public $option = '';
public function mount($user = null)
{
if(is_null($user)) {
// some initialization
$this->option = 'create';
}
else {
$this->user = User::find($user);
$this->option = 'edit';
}
}
public function render()
{
return view('user-form');
}
public funcion store()
{
if($this->option == 'create') {
//create handler
}
else {
//edit handler
}
}
取而代之的是使用重定向,您可以使用模态并在用户组件中的模态中呈现UserForm。正如我告诉你的,这可以通过不同的方式来实现问题是,我不喜欢使用modal。我想去不同的网页,所以如果它是不同的网页,我们必须作出新的组成部分?就像你说的,我必须像你说的那样制作用于创建/编辑的userform组件,就像我告诉你的那样,这取决于你。在本例中,将创建/编辑组件呈现为完整页面组件。另一种是通过嵌套组件模型、下拉开关等。但是,是的,在我的示例中,您需要一个不同的组件…这允许您重用组件和其他手柄在livewire进行研究后,我认为模型是其中的一个方面,并且像u所说的那样,对重用组件有很大的影响,所以我认为这就是我寻找的答案。谢谢:那很好,很高兴。问题是,我不喜欢使用modal。我想去不同的网页,所以如果它是不同的网页,我们必须作出新的组成部分?就像你说的,我必须像你说的那样制作用于创建/编辑的userform组件,就像我告诉你的那样,这取决于你。在本例中,将创建/编辑组件呈现为完整页面组件。另一种是通过嵌套组件模型、下拉开关等。但是,是的,在我的示例中,您需要一个不同的组件…这允许您重用组件和其他手柄在livewire进行研究后,我认为模型是其中的一个方面,并且像u所说的那样,对重用组件有很大的影响,所以我认为这就是我寻找的答案。谢谢:这很好,很愉快。在这种情况下,我想制作单页应用程序,所以我选择livewire生成的组件/控制器。因此,我有静态导航栏、侧边栏和动态内容,我们可以选择用户管理/项目管理/其他内容。你认为在这种情况下,它的用户,我想创建一个创建页面,我应该创建一个像UserCreate.php这样的新组件,还是可以通过在userp.php中创建公共函数并调用视图来创建一个像classic laravel控制器一样的组件。在Livewire控制器中定义方法,然后用wire绑定它们:在视图中单击。哦,好的,我使用create user视图返回公共函数create,在视图用户视图中,我用wire绑定了一个按钮:单击这是指向其他页面的经典链接还是不同的方法?下面是Livewire中的数据绑定示例:感谢您的示例和回答我的问题的努力。我想我得到了我的答案,我会为你付出的努力打分:在这种情况下,我想制作单页应用程序,所以是的,我选择livewire生成的组件/控制器。所以我有静态导航条
,侧边栏和动态内容。我们可以选择用户管理/项目管理/其他内容。你认为在这种情况下,它的用户,我想创建一个创建页面,我应该创建一个像UserCreate.php这样的新组件,还是可以通过在userp.php中创建公共函数并调用视图来创建一个像classic laravel控制器一样的组件。在Livewire控制器中定义方法,然后用wire绑定它们:在视图中单击。哦,好的,我使用create user视图返回公共函数create,在视图用户视图中,我用wire绑定了一个按钮:单击这是指向其他页面的经典链接还是不同的方法?下面是Livewire中的数据绑定示例:感谢您的示例和回答我的问题的努力。我想我得到了答案,我会为你付出的努力打分: