Laravel Controller: как использовать хранилище функций и создавать

mohitkirange спросил: 03 февраля 2018 в 12:32 в: php

В настоящее время я новичок в laravel, и я работаю над базовым проектом, в котором поставщик услуг (SP) может публиковать данные о сервисе, заполняя форму.

Я пытаюсь проверить, загрузил ли SP избранное изображение. Если да, то переименуйте файл с помощью

$featured = $request->featured;
$featured_new_name = time().$featured->getClientOriginalName();
$featured->move('uploads/services', $featured_new_name);

и сохраните его в каталоге uploads/services/.

Мой ServiceController.php выглядит так:

public function store(Request $request)
{
      $this->validate($request, [
      'name' => 'required|max:255',
      'address' => 'required|max:255',
      'city' => 'required|max:255',
      'state' => 'required|max:255',
      'zipcode' => 'required|integer|digits:5',
      'category_id' => 'required',
      'workingday' => 'required',
      'content' => 'required'
      ]);
//checking if featured image (logo file) is uploaded or not     if($request->hasfile('featured'))
  {
    $featured = $request->featured;
    $featured_new_name = time().$featured->getClientOriginalName();
    $featured->move('uploads/services', $featured_new_name);
  }
  else {      }     $featured->move('uploads/services', $featured_new_name);      $service = Service::create([
      'name' => $request->name,
      'content' => $request->content,
      'address' => $request->address,
      'city' => $request->city,
      'state' => $request->state,
      'zipcode' => $request->zipcode,
      ]);      if($request->hasfile('featured'))
      {
        $service = Service::create([
        'name' => $request->name,
        'content' => $request->content,
        'featured' =>'uploads/services/'.$featured_new_name,
        'address' => $request->address,
        'city' => $request->city,
        'state' => $request->state,
        'zipcode' => $request->zipcode,
    ]);
 }
    $service->workingdays()->attach($request->workingday);
    $service->categories()->attach($request->category_id);
    $service->user_id=auth()->id();
    $service->save();  Session::flash('success','Service created successfully');
  return view('sp.services.create')->with('categories', Category::all())->with('workingday', Workingday::all());
}

В файле миграции:

public function up()
{
    Schema::create('services', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('address');
        $table->string('city');
        $table->string('state');
        $table->string('zipcode');
        $table->integer('routes_id');
        $table->string('featured')->default('/uploads/services/default.png');
        $table->text('content')->nullable();
        $table->string('slug');
        $table->integer('user_id');
        $table->softDeletes();
        $table->timestamps();    });
}

Я сохраняю зарегистрированный user_id наряду со всеми другими подробностями службы. Когда пользователь загружает файл логотипа, этот код хранит две записи в базе данных: один с правильным user_id и один с 0. Когда пользователь не загружает файл логотипа, сохраняется только одна запись со всеми правильными значениями.

Здесь user_id 2 является правильной записью. Пожалуйста, помогите мне улучшить этот код.


0 ответов