Laravel最好或最有效的方法来处理if语句

时间:2013-03-31 12:59:00

标签: php laravel if-statement

我被困了一下,我有很多if else声明handeling,我将需要在更多的无页面中使用它,所以在视图中处理它并不是一个好主意(并阅读它不是一个好主意)

所以我被困在哪里,我有两张桌子。

user
users_details

User table存储基本登录信息,用户details包含以下字段

user_id
first_name  
last_name   
company 
location    
experience  
compensation    
about   
gender  
year    
day 
month   
profile_image

我的关系

用户模型

public function detail()
{
   return $this->has_one('Detail');
}

详细信息模型

public function user()
{
   return $this->belongs_to('User');
}

所以我坚持的是如何处理r eturn experience, compensation的对象,因为我需要在多个页面上,首先我在控制器中执行此操作

public function get_index($username = null)
{

   $user = User::get_profile($username);

   if (is_null($user))  return Response::error('404');

   switch ($user->detail->experience) {
    case 1:
        $user->detail->experience = "No experience";
    break;

    case 2:
        $user->detail->experience = "Some experience";
    break;

    case 3:
        $user->detail->experience = "Experienced";
    break;

    case 4:
        $user->detail->experience = "Very experienced";
    break;

   }

    switch ($user->detail->compensation) {
    case 1:
        $user->detail->compensation = "Any";
    break;

    case 2:
        $user->detail->compensation = "Depends on Assignment ";
    break;

    case 3:
        $user->detail->compensation = "Paid Assignments Only ";
    break;

    case 4:
        $user->detail->compensation = "Time for Print ";
    break;

   }

   $this->layout->title = 'Profile' . ' ' . $username ;

   $this->layout->content = View::make( 'user.profile' )->with( 'user', $user );

}    

而且我知道这是我应该提出的那个想法,因为它不会解决我的问题,没有效果,我仍然需要复制。

那么有人可以告诉我以及处理这些问题的示例和有效方法吗?

将不胜感激,谢谢

1 个答案:

答案 0 :(得分:2)

嗯,这确实很奇怪。

但是,你有两种方式:

1)定义答案表并与用户表连接,因此SQL结果将返回字符串,而不是ID

2)如果您仍然希望在某种程度上将ID与代码级别的文本相关联,则可以执行以下操作:

在详细信息模型中定义方法,例如使用此开关的compensation_str(),expierence相同。在每个地方你需要显示这个文本你称之为这个方法($ user-> details-> compensation_str())