2014-09-15 4 views
0

1) 여기에 eager loading을 사용하려면 $ ProfileUser 대신 $ SponceringUser를 사용하는 것이 좋습니다. 그래서 두 개의 별도의 쿼리를 실행할 필요가 없습니다. https://gist.github.com/gupta2205/b33dcf762876e5df34d9여기서 eager loading을 사용하는 방법은 두 개가 아닌 하나의 변수를 사용하는 것입니다. 그래서 두 개의 별도의 쿼리를 실행할 필요가 없습니다

public function post_edit($id = null) 
{ 
if ($id) 
{ 
    $Petition = Petition::find($id); 

    if (!$Petition) 
    { 
     //oh noes! invalid petition specified! 
     Alert::error("That petition no longer exists"); 
     return Redirect::action('[email protected]'); 
    } 
} 
else 
{ 
    $Petition = new Petition; 
} 

$PetitionCreationForm = new AdminPetitionCreationForm; 
$errors = array(); 

if ($PetitionCreationForm->passes()) 
{ 
    $Petition->call_to_action = Input::get('call_to_action'); 

    if (empty($Petition->id)) 
    { 
     $Petition->slug = Str::slug($Petition->call_to_action); 
    } 

    $Petition->recipient = Input::get('recipient'); 


    if (Input::get('feature_type') == '1') 
    { 
     $Petition->featured_sort_order = Input::get('featured_sort_order') + 1; 
     $Petition->flag_featured = 1; 
    } 
    else if(Input::get('feature_type') == '0') 
    { 
     $Petition->featured_sort_order=null; 
     $Petition->flag_featured = 0; 
    } 
    //$selected_position = Input::get('dropdown_menu_list'); 
    $Petition->description_md = Input::get('description_md'); 
    $Petition->description = Petition::parseMD($Petition->description_md); 

    $Petition->letter_md = Input::get('letter_md'); 
    $Petition->letter = Petition::parseMD($Petition->letter_md); 

    $Petition->target_signatures = Input::get('target_signatures', 50000); 
    $Petition->flag_published = Input::get('flag_published'); 

    $Petition->media_type = Input::get('media_type', null); 

    if (Input::get('media_type') == 'img' && Input::hasFile('petition_image')) 
    { 
     $Petition->media_url = Petition::uploadFile(Input::file('petition_image')); 
    } 
    else if (Input::get('media_type') == 'youtube' && Input::get('media_url_youtube')) 
    { 
     $Petition->media_url = Input::get('media_url_youtube'); 
    } 


    // how to fix this part .... gurrrrrrrrrrrr======================= 
    $ProfileUser= $Petition->User; 

    if (Input::get('profile_type') == 'image' && Input::hasFile('profile_image')) 
    { 
     $ProfileUser->profile_img_url = Petition::uploadFile(Input::file('profile_image')); 
    } 
    else if (Input::get('profile_type') == 'url' && Input::get('profile_url')) 
    { 
     $ProfileUser->profile_img_url = Input::get('profile_url'); 
    } 
    //$Petition->sponsor_user_id = $SponsoringUser->id; 
    $ProfileUser->save(); 
    //==================================================== 

    try { 
     try { 
      $SponsoringUser = User::where('email', Input::get('user.email'))->firstOrFail(); 
     } 
     catch (Exception $e) 
     { 
      $PetitionSponsorForm = new AdminPetitionSponsorForm(Input::get('user')); 

      if ($PetitionSponsorForm->passes()) 
      { 
       $SponsoringUser = new User; 
       $SponsoringUser->email = Input::get('user.email'); 
       $SponsoringUser->first_name = Input::get('user.first_name'); 
       $SponsoringUser->last_name = Input::get('user.last_name'); 
       $SponsoringUser->populateLocation(Input::get('user.zip')); 

       $SponsoringUser->save(); 
      } 
      else 
      { 
       throw new Exception(); 
      } 
     } 
     $Petition->save(); 
:

내가 $ SponceringUser 내 $ profileUser 변수를 교환 할 경우 코드에서 나는 오른쪽 출력 여기

참조하시기 바랍니다 요점 여기에 자세한 내용은 Post_edit 방법은을 얻기 위해 저장해야하는 위치

1) 어떻게 여기 열망하는로드를 사용할 수 있습니까? $ ProfileUser 대신 $ SponceringUser를 사용하는 것입니다. 그래서 두 개의 별도의 쿼리를 실행할 필요가 없습니다.

답변

0

는 내가 그것을

if (Input::get('profile_type') == 'image' && Input::hasFile('profile_image')) 
      { 
       $SponsoringUser->profile_img_url =   Petition::uploadFile(Input::file('profile_image')); 
      } 
      else if (Input::get('profile_type') == 'url' && Input::get('profile_url')) 
      { 
       $$SponsoringUser->profile_img_url = Input::get('profile_url'); 
      } 

      $SponsoringUser->save(); 
을 :) 있어요