Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php LaravelLivewire 2:我们是要制作一个新的类,还是像传统的控制器一样_Php_Laravel_Controller_Components_Laravel Livewire - Fatal编程技术网

Php LaravelLivewire 2:我们是要制作一个新的类,还是像传统的控制器一样

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)) { //

这是我的第一个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)) {
    // 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中的数据绑定示例:感谢您的示例和回答我的问题的努力。我想我得到了答案,我会为你付出的努力打分: