我没有描述清楚吧,想把if的这个判断放在Presenters里,发现$errors这个变量不能放进去
比如:
namespace App\Presenters;
class UserPresenter
{
/**
* 性別欄位為M,就顯示Mr.,若性別欄位為F,就顯示Mrs.
* @param string $gender
* @param string $name
* @return string
*/
public function getFullName($gender, $name)
{
if ($gender == 'M')
$fullName = 'Mr. ' . $name;
else
$fullName = 'Mrs. ' . $name;
return $fullName;
}
}
將原本在 blade 用 @if...@else...@endif
寫的邏輯,改寫在 presenter。
再比如
namespace App\Presenters;
use App\User;
class UserPresenter
{
/**
* 是否顯示email
* @param User $user
* @return string
*/
public function showEmail(User $user)
{
if ($user->show_email == 'Y')
return '<h2>' . $user->email . '</h2>';
else
return '';
}
}
將 @if()
的 boolean 判斷,封裝在 presenter 內。
我的难点是$errors有时候有,有时候没有,不知道应该怎样改写,如果要依赖注入,该如何操作