0

私は少し立ち往生しています.if elseステートメントの処理がたくさんあります.これをnoneページで使用する必要があるため、ビューで処理することはお勧めできません(それについて読むのはお勧めできません)

それで、私が立ち往生しているのは、2つのテーブルがあります。

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 );

}    

そして、私はこれが私が思いつくべき麦汁のアイデアであることを知っています.それは私の問題を解決せず、効果的ではなく、まだ複製する必要があるからです.

それで、誰かが私とこれらを処理するための例と効果的な方法を示すことができますか?

感謝します、ありがとう

4

1 に答える 1

2

うーん、これは確かに奇妙です。

ただし、次の 2 つの方法があります。

1)回答用のテーブルを定義し、ユーザーテーブルと結合して、SQL結果がIDではなく文字列を返すようにします

2) なんらかの理由で ID をコード レベルでテキストに関連付けたい場合は、次の操作を実行できます。

このスイッチを作成する補償_str()のような詳細モデルでメソッドを定義します。これは経験と同じです。そして、このテキストを表示する必要がある各場所で、このメソッドを呼び出します ($user->details->compensation_str())

于 2013-03-31T13:10:11.697 に答える