Laravel 10 - CRUD example Kategoria: Laravel | Autor: Bartłomiej Gałęzia

1. Stwórz model

php artisan make:model Company -m

wynik

INFO Model [app/Models/Company.php] created successfully.
INFO Migration [database/migrations/2024_04_21_085712_create_companies_table.php] created successfully.

2. Aktualizuj strukturę tabeli w pliku database/migrations/2024_04_21_085712_create_companies_table.php

public function up()
{
    Schema::create('companies', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email');
        $table->string('address');
        $table->timestamps();
    });
}


3. Aktualizuj pola w app/Models/Company.php

...

class Company extends Model
{
    use HasFactory;

    protected $fillable = ['name', 'email', 'address'];
}


4. Uruchom migrację aby stworzyć tabelę w bazie:

php artisan migrate

wynik

INFO  Preparing database.  

Creating migration table ............................................................................................................... 28ms DONE

INFO  Running migrations.  

2024_04_21_085712_create_companies_table ............................................................................................... 23ms DONE


5. Stwórz kontroler

php artisan make:controller CompanyController

wynik

INFO Controller [app/Http/Controllers/CompanyController.php] created successfully.


6. Dodaj wymagane funkcje w kontrolerze app/Http/controllers/CompanyController.php

namespace App\Http\Controllers;

use App\Models\Company;
use Illuminate\Http\Request;

class CompanyController extends Controller {

    public function index() {
        $companies = Company::orderBy('id', 'desc')->paginate(5);
        return view('companies.index', compact('companies'));
    }

    public function create() {
        return view('companies.create');
    }

    public function store(Request $request) {
        $request->validate([
            'name' => 'required',
            'email' => 'required',
            'address' => 'required',
        ]);

        Company::create($request->post());

        return redirect()->route('companies.index')->with('success', 'Company has been created successfully.');
    }

    public function show(Company $company) {
        return view('companies.show', compact('company'));
    }

    public function edit(Company $company) {
        return view('companies.edit', compact('company'));
    }

    public function update(Request $request, Company $company) {
        $request->validate([
            'name' => 'required',
            'email' => 'required',
            'address' => 'required',
        ]);

        $company->fill($request->post())->save();

        return redirect()->route('companies.index')->with('success', 'Company Has Been updated successfully');
    }

    public function destroy(Company $company) {
        $company->delete();
        return redirect()->route('companies.index')->with('success', 'Company has been deleted successfully');
    }

}


7. Dodaj trasy w routes/web.php

Route::resource('companies', CompanyController::class);


8. Dodaj widoki

resources/views/companies/index.blade.php
resources/views/companies/create.blade.php
resources/views/companies/edit.blade.php
resources/views/companies/show.blade.php

Źródło: https://techvblogs.com/blog/laravel-10-crud-example-tutorial-for-beginners

Dodaj komentarz

Brak komentarzy, bądź pierwszy i dodaj swój komentarz

Wyszukaj

Zapisz się do newsletera