Advertisement
Guest User

Member Controller for Model with Stapler Attachment

a guest
Mar 28th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.95 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers;
  4.  
  5. use App\Category;
  6. use App\Member;
  7. use App\MembershipLevel;
  8. use Auth;
  9. use DB;
  10. use Illuminate\Database\Eloquent\Collection;
  11. use Illuminate\Http\Request;
  12.  
  13. use App\Http\Requests;
  14.  
  15. class MembersController extends Controller
  16. {
  17.     /**
  18.      * MembersController constructor.
  19.      * @param Request $request
  20.      */
  21.     public function __construct(Request $request) {
  22.         $this->middleware('auth');
  23.     }
  24.  
  25.     // ....
  26.  
  27.     /**
  28.      * Update the specified resource in storage.
  29.      *
  30.      * @param  \Illuminate\Http\Request  $request
  31.      * @param  int  $id
  32.      * @return \Illuminate\Http\Response
  33.      */
  34.     public function update(Request $request, $id)
  35.     {
  36.         /**
  37.          * @var Member $member
  38.          */
  39.         $member = Auth::user()->members()->findOrFail($id);
  40.  
  41.         $this->validate($request, Member::$validations);
  42.  
  43.         //
  44.         $member = $this->UpdateMember($member, $request);
  45.  
  46.         //
  47.         if( Auth::user()->members()->save($member) ) {
  48.             $request->session()->flash('status', "Successfully Updated {$member->name}.");
  49.         }
  50.         else {
  51.             $request->session()->flash('error', 'Could Not Create Member.');
  52.         }
  53.  
  54.         //
  55.         return redirect()->route('members.index');
  56.     }
  57.  
  58.  
  59.     /**
  60.      * @param Member $member
  61.      * @param Request $request
  62.      * @return Member
  63.      */
  64.     private function UpdateMember(Member $member, Request $request)
  65.     {
  66.         //
  67.         if( $request->input('destroy_logo', false) !== false ) {
  68.             $member->logo = STAPLER_NULL;
  69.         }
  70.  
  71.         // I don't like this.
  72.         if( ($id = $request->input('category.id')) !== "Add Category" ) {
  73.  
  74.             /**
  75.              * @var Collection $categories
  76.              */
  77.             $categories = Category::defaultCategories()->get()
  78.                 ->merge( Auth::user()->member_categories );
  79.  
  80.             //
  81.             if( $categories->contains('id', $id) ) {
  82.                 $member->category_id = $id;
  83.             }
  84.         }
  85.         else {
  86.             $category = Auth::user()->member_categories()->create($request->input('category'));
  87.  
  88.             $member->category_id = $category->id;
  89.         }
  90.  
  91.  
  92.         // I don't like this.
  93.         if( ($id = $request->input('membership.id')) !== "Add Membership Level" ) {
  94.  
  95.             if( Auth::user()->membership_levels->contains('id', $id) ) {
  96.                 $member->membership_level_id = $id;
  97.             }
  98.         }
  99.         else {
  100.             $level = Auth::user()->membership_levels()->create($request->input(["membership"]));
  101.  
  102.             $member->membership_level_id = $level->id;
  103.         }
  104.  
  105.  
  106.         // sanitize html from textarea
  107.         $member->description = clean($request->input('description'));
  108.  
  109.         //
  110.         $member->fill($request->only(['name', 'website', 'email', 'hours_of_operation', 'logo']));
  111.  
  112.         //
  113.         return $member;
  114.     }
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement