Использование одной функции publi c для нескольких методов записи на контроллере laravel - PullRequest
0 голосов
/ 16 марта 2020

поэтому у меня есть один контроллер, который содержит так много функций внутри. И, конечно, мой код на маршрутах превратился в беспорядок. Мой старший сказал, чтобы я включил все методы get в одну функцию, подобную этой publi c function create (Request $ request) {

  $vendor = Vendors::all();
  $category = ItemCategory::all();
  $jenis_usaha = Status::where('type', 9)->get();

  if ($request->page == 'add-contact') {
    $vendor_id = $request->vendor_id;
    $vendor = Vendors::findOrFail($vendor_id);
    return view('home.vendor.add_contact',compact('vendor'));
  }elseif ($request->page == 'add-document') {
    $category = ItemCategory::all();
    $vendor_id = $request->vendor_id;
    $vendor = Vendors::findOrFail($vendor_id);

    if (!$vendor->contact) {
      return redirect()->back()->with(['flash_notice'=>'Harap isi data PIC terlebih dahulu']);
    }

    if($vendor->document != null || $vendor->document != ''){
      return view('home.vendor.edit-document-exist',compact(['vendor','category']));
    }

    return view('home.vendor.edit_document',compact(['vendor','category']));
  }

  return view('home.vendor.add_vendor',compact('vendor','category','jenis_usaha'));
}

Работает нормально. но я не совсем понимаю, как использовать его в пост-методе, потому что он сказал, что это то же самое, но, похоже, это не работает для меня. Я использую этот тип URL, чтобы получить представление http://127.0.0.1: 8000 / system / procurement / vendor / create? Page = add-contact & vendor_id = '. $ Vendor-> id, но я не знаю, как сделать это с постом. я должен изменить создание в магазин? Это моя функция магазина:

public function store(Request $request)
    {
      $vendor_name = $request->name;
      $vendor_alias = $request->alias;
      $alamat = $request->address;
      $category = $request->category;
      $fax_ = $request->fax;
      $phone_ = $request->phone;

      $subs_vend = strtoupper(substr($vendor_name, 0, 3));

      $find_last = Vendors::where('accountnum','LIKE',$subs_vend.'%')->orderBy('id', 'DESC')->first();

        if($find_last != null)
        {
            $explode = explode('-', $find_last->accountnum);
            $kode = $subs_vend.'-';

            $last_code = $explode['1'];

            if($last_code < 9)
            {
                $kode_form = $last_code + 1;
                $vend_account = $kode.'000'.$kode_form;
            }
            elseif ($last_code >= 9) {
                $kode_form = $last_code + 1;
                $vend_account = $kode.'00'.$kode_form;
            }

        }
        else
        {
            $vend_account = $subs_vend.'-0001';
        }

        $vendors_ = new Vendors;
        $vendors_->accountnum  = $vend_account;
        $vendors_->name        = $vendor_name;
        $vendors_->namealias   = $vendor_alias;
        $vendors_->alamat      = $alamat;
        $vendors_->fax         = $fax_;
        $vendors_->phone       = $phone_;
        $vendors_->jenis_usaha = $request->badan_usaha;
        $vendors_->status      = 1;
        $vendors_->save();

        //axapta input
        $dp = 'DP6';
        $dp2 = 'KSO';
        $add = 'add';

        $name_vendor = $request->c_name;
        $phone = $request->c_phone;
        $email = $request->c_email;
        $fax   = $request->c_fax;

        $u = 0;

        foreach ($name_vendor as $item) {
          if($item != null)
          {
            $contact = new ContactPerson;
            $contact->vendor_id       = $vendors_->id;
            $contact->name            = $item;
            $contact->phone           = $phone[$u];
            $contact->email           = $email[$u];
            $contact->fax             = $fax[$u];
            $contact->status          = 1;
            $contact->save();
          }
        }

        foreach ($category as $value) {
          if($value != null)
          {
            $category_vendor              = new CategoryVendor;
            $category_vendor->vendor_id   = $vendors_->id;
            $category_vendor->category_id = $value;
            $category_vendor->status      = 1;
            $category_vendor->save();
          }
        }

        if ($request->page == 'add-contact') {
          $name_vendor = $request->c_name;
          $phone = $request->c_phone;
          $email = $request->c_email;
          $fax   = $request->c_fax;

          $u = 0;

          foreach ($name_vendor as $item) {
            if($item != null)
            {

              $contact = new ContactPerson;
              $contact->vendor_id       = $vendors_id;
              $contact->name            = $item;
              $contact->phone           = $phone[$u];
              $contact->email           = $email[$u];
              $contact->fax             = $fax[$u];
              $contact->status          = 1;
              $contact->save();
            }
          }

          return redirect('system/procurement/vendor/'.$vendors_->id)->with(['flash_notice'=>'Sukses add contact']);

        }elseif ($request->page == 'add-document') {
        }

        return redirect()->back()->with(['flash_notice'=>'Sukses menambahkan vendor']);
    }

И это один из моих кодов для публикации представления «add-contact» код действия формы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...