✓ Controller untuk menangani permintaan pengguna dan mengambil data, dengan memanfaatkan Model
✓ Model untuk berinteraksi dengan database Anda dan mengambil informasi objek Anda
✓ View untuk merender halaman
Permintaan dibuat - misalnya, ketika pengguna memasukkan URL yang terkait dengan aplikasi Anda.
Sebuah rute yang berhubungan dengan URL yang memetakan URL untuk aksi kontroler.
Itu kontroler tindakan memanfaatkan diperlukan Model (s) untuk mengambil informasi dari database, dan kemudian melewati data yang off untuk tampilan.
Dan pandangan itu menampilkan halaman akhir.
Saya suka mengatakan bahwa aplikasi MVC sangat mirip bermain dengan Lego .
Dan membangun satu menggunakan Laravel 5 sangat mudah.
Membangun aplikasi sampel
Demi demonstrasi, saya akan memandu Anda melalui proses pembuatan awal contoh aplikasi Laravel 5 dengan semua komponen MVC - model, tampilan, dan pengontrol.
Jadi, katakanlah Anda ingin membuat aplikasi yang berhubungan dengan mobil ...
Model
Kami akan mulai dengan membuat model, untuk mewakili Mobil.
Laravel hadir dengan antarmuka baris perintah yang fantastis, built-in, CLI Tukang , yang menyediakan Anda dengan banyak perintah yang berguna untuk membantu Anda membangun aplikasi Anda.
Jadi, jalankan baris perintah Anda (dan hubungkan ke mesin virtual Homestead Anda, jika Anda menggunakan Laravel Homestead ), masuk ke direktori utama aplikasi Anda, dan jalankan perintah berikut untuk membuat model Mobil baru:
php artisan make:model Car --migration
Semua model disimpan di appdirektori utama , sehingga perintah tersebut akan menghasilkan
app/Car.php
file model dengan kode berikut:<?php namespace App; use Illuminate\Database\Eloquent\Model; class Car extends Model { // }
Karena fungsi model bawaan Laravel, hanya dengan membuat kelas model kosong, Laravel akan berasumsi bahwa model ini dikaitkan dengan tabel database bernama cars.
Dan, sebenarnya, dengan menyediakan --migrationopsi itu ketika membuat model, Laravel juga menghasilkan file migrasi database untuk membuat carstabel basis data itu. File migrasi terletak di [timestamp]_create_cars_table.phpdan berisi kode berikut:
<?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateCarsTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('cars', function (Blueprint $table) { $table->increments('id'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('cars'); } }
(Jika Anda tidak terbiasa dengan konsep migrasi basis data, baca lebih lanjut tentang bagaimana Laravel menggunakan migrasi basis data untuk membantu Anda mengelola basis data Anda langsung dari dalam aplikasi Anda. Luar biasa.)
Yang harus Anda lakukan sekarang adalah menggunakan dokumentasi pembangun Skema Laravel untuk menyelesaikan file migrasi. Jadi Anda dapat menentukan beberapa kolom tambahan untuk, katakanlah, menyimpan pembuatan mobil, model, dan tanggal produksi:
Schema::create('cars', function (Blueprint $table) { $table->increments('id'); $table->string('make'); $table->string('model'); $table->date('produced_on'); $table->timestamps(); });
Lalu Anda dapat menjalankan migrasi untuk membuat carstabel menggunakan perintah Artisan berikut:
php artisan migrate
Dengan item yang berhubungan dengan basis data yang dialamatkan, kita sekarang dapat melanjutkan untuk membuat pengontrol.
Catatan: Demi pengujian, pada titik ini, saya hanya secara manual menambahkan entri ke carstabel database.
Controller
Di Laravel, sejenis objek - seperti Mobil, dalam hal ini - disebut sebagai sumber daya .
Karena ini sangat umum untuk membangun aplikasi di sekitar sumber daya, Anda dapat membuat pengontrol sumber daya - pengontrol untuk menangani semua permintaan yang terkait dengan sumber daya - menggunakan perintah Artisan sederhana lain:
php artisan make:controller CarController
Itu akan menghasilkan
app/Http/Controllers/CarController.php
file controller dengan kode berikut:<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; class CarController extends Controller { /** * Display a listing of the resource. * * @return Response */ public function index() { // } /** * Show the form for creating a new resource. * * @return Response */ public function create() { // } /** * Store a newly created resource in storage. * * @return Response */ public function store() { // } /** * Display the specified resource. * * @param int $id * @return Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return Response */ public function edit($id) { // } /** * Update the specified resource in storage. * * @param int $id * @return Response */ public function update($id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return Response */ public function destroy($id) { // } }
Perhatikan bahwa secara otomatis menghasilkan pengontrol dengan semua tindakan CRUD yang khas.
Sekarang, kita hanya perlu menentukan rute untuk menghubungkan URL dengan semua tindakan pengontrol ini.
Rute
Sekali lagi, karena ini adalah skenario umum, Anda dapat menentukan rute sumber daya tunggal , yang membuat rute untuk semua tindakan pengontrol sumber daya tersebut.
Di file konfigurasi rute - app/Http/routes.php- tambahkan yang berikut untuk menentukan rute sumber daya Mobil:
Route::resource('cars', 'CarController');
Definisi rute tunggal itu akan menentukan semua rute yang terkait dengan sumber daya Mobil kami:
Request Type | Path | Action | Route Name |
---|---|---|---|
GET | /cars |
index |
cars.index |
GET | /cars/create |
create |
cars.create |
POST | /cars |
store |
cars.store |
GET | /cars/{car} |
show |
cars.show |
GET | /cars/{car}/edit |
edit |
cars.edit |
PUT/PATCH | /cars/{car} |
update |
cars.update |
DELETE | /cars/{car} |
destroy |
cars.destroy |
Sekarang, demi contoh, mari selesaikan implementasi halaman Show Car.
Controller ini showtindakan
Sesuai tabel sebelumnya, halaman Show Car akan dapat diakses http://app.url/cars/{car}. Dalam hal ini, {car}kehendak, pada kenyataannya, menjadi idobjek mobil dalam database.
Jadi, misalnya, URL untuk melihat mobil dengan iddari 1akan http://app.url/cars/1.
Untuk mengimplementasikan halaman Show Car, dalam aksi pengontrol show, kita perlu:
Gunakan Carmodel untuk mengambil objek Mobil yang ditunjuk dari database.
Muat tampilan untuk halaman Show Car, dan berikan objek Mobil yang diambil dari database.
Pertama, untuk mengakses model Mobil di controller, kita perlu menambahkan usepernyataan baru di atas kelas pengontrol:
. . . use App\Car; class CarController extends Controller { . . .
Kemudian, kita dapat menyelesaikan showtindakan dengan kode berikut:
. . . public function show($id) { $car = Car::find($id); return view('cars.show', array('car' => $car)); } . . .
Ketika kami mengunjungi URL mobil 1 - http://app.url/cars/1- Laravel membuat 1URL di dapat diakses melalui $idvariabel dalam showfungsi, yang ditunjukkan di atas.
Dan mengambil objek mobil menggunakan Carmodel semudah memanggil Car::finddan melewati itu $id.
Tampilan kemudian dimuat menggunakan viewfungsi dan meneruskan nama tampilan (yang akan kita buat dalam satu menit) dan array dengan data yang akan diberikan ke tampilan.
Terakhir, kita perlu membuat tampilan pertunjukan.
Tampilan dan Melengkapi Halaman
File tampilan LARAVEL semuanya disimpan dalam resources/viewsfolder. Dan mereka dapat diatur menjadi subfolder dalam direktori itu.
Pada langkah sebelumnya, kami meneruskan viewfungsi nama tampilan cars.show. Itu memberitahu Laravel untuk mencari file tampilan yang terletak di subfolder bernama cars(dalam resources/viewsdirektori utama ) bernama show.blade.php.
File tampilan Laravel menggunakan mesin templat Blade , dan karenanya diberi nama .blade.php.
Jadi, untuk menyelesaikan implementasi halaman Show Car ini, kita bisa membuat resources/views/cars/show.blade.phpfile tampilan dengan kode berikut:
<!DOCTYPE html> <html> <head> <title>Car {{ $car->id }}</title> </head> <body> <h1>Car {{ $car->id }}</h1> <ul> <li>Make: {{ $car->make }}</li> <li>Model: {{ $car->model }}</li> <li>Produced on: {{ $car->produced_on }}</li> </ul> </body> </html>
Karena kami mengirimkan Carobjek ke tampilan - kembali ke showtindakan pengontrol - dengan tombol array car, kita dapat mengaksesnya dalam tampilan melalui variabel dengan nama yang sama $car,.
Objek diambil melalui model adalah contoh dari kelas model itu.
Dan, seperti yang Anda lihat, nilai Carobjek dapat diakses menggunakan nama yang sama dengan nama carskolom tabel database terkait .
Akhirnya, Anda melihat penggunaan sintaks Blade untuk mencetak informasi. Berikut ini, misalnya, mencetak make mobil:
{{ $car->make }}
Pernyataan itu hanya diterjemahkan ke dalam echopernyataan PHP murni di latar belakang:
<?php echo $car->make; ?>
Tetapi sintaks Blade membuat tampilan tulisan lebih cepat dan lebih menyenangkan, dan membacanya jauh lebih mudah.
Permulaan Aplikasi Web MVC hanya dalam 10 Menit
Dan begitulah!
Begitulah cara cepat, dan mudah, Anda dapat membangun aplikasi web MVC menggunakan Laravel 5.
Dengan kombinasi perintah CLI Artisan dan fungsi built-in yang disediakan, membuat aplikasi Laravel cepat dan menyenangkan.
No comments:
Post a Comment