Методы в Laravel PhotoController с примерами кода

Команда «php artisan make:controller photocontroller –resource» используется в Laravel, PHP-фреймворке, для создания контроллера под названием «PhotoController» с помощью изобретательных методов.

Находчивые контроллеры в Laravel обычно предоставляют следующие методы:

  1. index: этот метод извлекает и отображает коллекцию ресурсов.

    public function index()
    {
    $photos = Photo::all();
    return view('photos.index', ['photos' => $photos]);
    }
  2. create: этот метод отображает форму для создания нового ресурса.

    public function create()
    {
    return view('photos.create');
    }
  3. store: этот метод сохраняет новый ресурс в базе данных.

    public function store(Request $request)
    {
    // Validate and store the submitted data
    $validatedData = $request->validate([
        'title' => 'required',
        'image' => 'required|image',
    ]);
    $photo = new Photo;
    $photo->title = $validatedData['title'];
    // Save the uploaded image and set the path in the database
    $photo->image = $request->file('image')->store('photos');
    $photo->save();
    return redirect()->route('photos.index');
    }
  4. show: этот метод отображает определенный ресурс.

    public function show(Photo $photo)
    {
    return view('photos.show', ['photo' => $photo]);
    }
  5. edit: этот метод отображает форму для редактирования определенного ресурса.

    public function edit(Photo $photo)
    {
    return view('photos.edit', ['photo' => $photo]);
    }
  6. обновление: этот метод обновляет определенный ресурс в базе данных.

    public function update(Request $request, Photo $photo)
    {
    // Validate and update the submitted data
    $validatedData = $request->validate([
        'title' => 'required',
        'image' => 'image',
    ]);
    $photo->title = $validatedData['title'];
    // Update the image if a new one is provided
    if ($request->hasFile('image')) {
        Storage::delete($photo->image);
        $photo->image = $request->file('image')->store('photos');
    }
    $photo->save();
    return redirect()->route('photos.index');
    }
  7. destroy: этот метод удаляет определенный ресурс из базы данных.

    public function destroy(Photo $photo)
    {
    Storage::delete($photo->image);
    $photo->delete();
    return redirect()->route('photos.index');
    }