我的控制器中有一些简单的逻辑。但我经常在其他方法中使用它。这是一个例子。
在我的控制器中。
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
在我的案例中,我如何遵循DRY原则?
任何帮助将不胜感激。
提前致谢。
答案 0 :(得分:0)
在您的陈列室模型中,您可以包含以下功能:
public function getNameAttribute($value)
{
return isset($value) ? $value : 'Belum Ada Izin';
}
假设您希望在任何地方showroom->name
使用该行为。如果没有,请创建函数getNameWithDefaultAttribute
,检查正文中的$this->name
,并在控制器中引用它,如Auth::user()->showroom->name_with_default
答案 1 :(得分:0)
要获得更清晰,更短的语法,请使用data_get
helper:
data_get(Auth::user(), 'showroom.name', 'your default value');
这在大多数情况下都很方便,但并不总是最好的方法。
但是,在您的示例中,似乎您可能只想share this variable across your views - 使用文档中描述的share
或View Composer
。