Laravel 5 Laravel 5如何在我的简单控制器逻辑中遵循DRY?
我的控制器中有一些简单的逻辑。但我经常用其他方法。这里有一个例子 在我的控制器里Laravel 5 Laravel 5如何在我的简单控制器逻辑中遵循DRY?,laravel-5,Laravel 5,我的控制器中有一些简单的逻辑。但我经常用其他方法。这里有一个例子 在我的控制器里 public function method1() { if(isset(Auth::user()->showroom->name)){ $showroomName = Auth::user()->showroom->name; }else{ $showroomName = "Belum Ada Izin"; }
public function method1()
{
if(isset(Auth::user()->showroom->name)){
$showroomName = Auth::user()->showroom->name;
}else{
$showroomName = "Belum Ada Izin";
}
return view('method1view', compact('showroomName'));
}
public function method2()
{
if(isset(Auth::user()->showroom->name)){
$showroomName = Auth::user()->showroom->name;
}else{
$showroomName = "Belum Ada Izin";
}
return view('method2view', compact('showroomName'));
}
... so on
在我的情况下,我如何遵循干燥原则
任何帮助都将不胜感激
提前感谢。在您的展厅模型中,您可以包括以下功能:
public function getNameAttribute($value)
{
return isset($value) ? $value : 'Belum Ada Izin';
}
假设您希望在任何地方使用
showroom->name
的行为。如果没有,则使用函数getNameWithDefaultAttribute
,选中主体中的$this->name
,并在控制器中引用它,如Auth::user()->showroom->name_with_default
,在您的展厅模型中,您可以包括以下函数:
public function getNameAttribute($value)
{
return isset($value) ? $value : 'Belum Ada Izin';
}
假设您希望在任何地方使用
showroom->name
的行为。如果没有,则使用函数getNameWithDefaultAttribute
,选中主体中的$this->name
,并在控制器中引用它,如Auth::user()->showroom->name_with_default
要获得更简洁的语法,请使用data_get
helper:
data_get(Auth::user(), 'showroom.name', 'your default value');
在大多数情况下,这很方便,但并不总是最好的方法
然而,在您的示例中,似乎实际上您只想使用文档中描述的
share
或View Composer
。对于更简洁的语法,请使用data\u get
helper:
data_get(Auth::user(), 'showroom.name', 'your default value');
在大多数情况下,这很方便,但并不总是最好的方法
然而,在您的示例中,似乎实际上您只想使用文档中描述的
share
或View Composer
。我应该在哪里放置data\u get()
函数?因此,我可以像$showroomName=dataGetShowroomName()
那样调用我的控制器,而不是$showroomName=data\u get(Auth::user(),'showroom.name','your default value')代码>只要把它放在你需要的地方。控制器不错,除非它是一个“全局”变量,否则您可以在app/helpers.php
文件(您将添加到composerautoload->files
array)中注册一个函数。我应该将data\u get()
函数放在哪里?因此,我可以像$showroomName=dataGetShowroomName()
那样调用我的控制器,而不是$showroomName=data\u get(Auth::user(),'showroom.name','your default value')代码>只要把它放在你需要的地方。控制器不错,除非它是一个“全局”变量,否则您可以在文件中注册一个函数,例如,app/helpers.php
文件(您将添加到composerautoload->files
array)