Laravel เป็นเฟรมเวิร์กเว็บ PHP แบบโอเพนซอร์ซฟรีที่สร้างขึ้นโดย Taylor Otwell และมีไว้สำหรับการพัฒนาเว็บแอปพลิเคชันตามรูปแบบสถาปัตยกรรมแบบจำลอง-มุมมอง (MVC) และขึ้นอยู่กับ Symfony คุณสมบัติบางอย่างของ Laravel เป็นระบบบรรจุภัณฑ์แบบแยกส่วนที่มีตัวจัดการการพึ่งพาเฉพาะวิธีที่แตกต่างกันในการเข้าถึงฐานข้อมูลเชิงสัมพันธ์สาธารณูปโภคที่ช่วยในการปรับใช้และการบำรุงรักษาแอปพลิเคชันและการวางแนวไปสู่น้ำตาลวากยสัมพันธ์
ส่วนประกอบโมเดลสอดคล้องกับตรรกะที่เกี่ยวข้องกับข้อมูลทั้งหมดที่ผู้ใช้ทำงานด้วย สิ่งนี้สามารถแสดงข้อมูลที่กำลังถ่ายโอนระหว่างส่วนประกอบมุมมองและคอนโทรลเลอร์หรือข้อมูลที่เกี่ยวข้องกับตรรกะทางธุรกิจอื่น ๆ
โฟลเดอร์: แอพ/
ส่วนประกอบมุมมองใช้สำหรับตรรกะ UI ทั้งหมดของแอปพลิเคชัน
โฟลเดอร์: ทรัพยากร/มุมมอง
คอนโทรลเลอร์ทำหน้าที่เป็นอินเทอร์เฟซระหว่างโมเดลและส่วนประกอบมุมมองเพื่อประมวลผลตรรกะทางธุรกิจทั้งหมดและคำขอที่เข้ามาจัดการข้อมูลโดยใช้ส่วนประกอบโมเดลและโต้ตอบกับมุมมองเพื่อแสดงผลสุดท้าย
โฟลเดอร์: แอพ/http/คอนโทรลเลอร์
ข้อกำหนดสำหรับโครงการนี้:
"php": "^7.1.3",
"laravel/framework": "5.7.*",
การตั้งค่า Laravel:
Install PHP 7.1.3
Instal MySQL
Install Composer
อัปเดตโฟลเดอร์ผู้ขาย:
composer update
or
composer install
พิมพ์ CMD เพื่อสร้างโครงการ:
composer global require "laravel/installer"
laravel new blogname
ตรวจสอบคำสั่งหรือการอ้างอิงที่มีอยู่ใน Laravel
php artisan list
php artisan help [command name]
ex. php artisan help make:model
เรียกใช้ Laravel
php artisan serve
or
in browser http://localhost/laravel/magelaravel/public/
ฐานข้อมูลการตั้งค่าใน. env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homested
DB_USERNAME=homestead
DB_PASSWORD=secret
การตรวจสอบการตั้งค่า (ไม่บังคับ):
php artisan make:auth
การกำหนดค่าฐานข้อมูลการตั้งค่า
php artisan migrate
php artisan migrate:refresh //if you want to change laravel model
การตั้งค่าอีเมลเพื่อวัตถุประสงค์ในการทดสอบ
MAIL_DRIVER=log
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
or
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=mageCE0721
MAIL_ENCRYPTION=tls
ตั้งค่า homecontroller เพื่อจัดการเส้นทางเว็บไซต์ แอพ/http/คอนโทรลเลอร์/homecontroller.php
public function index()
{
$post = Post::all();
return view( 'index' , ['post' => $post ]);
}
public function detail(Request $request)
{
$post = Post::find($request->post);
return view('detail' , ['post' => $post ]);
}
public function home()
{
$post = Post::all();
return view( 'home' , ['post' => $post ]);
}
public function edit(Request $request)
{
$post = Post::find($request->idpost);
return view( 'edit' , ['post' => $post ]);
}
สร้างโมเดลคอนโทรลเลอร์การย้ายถิ่นสำหรับโพสต์
php artisan make:controller PostController
php artisan make:model Post
php artisan make:migration create_post_table --create=posts
or
php artisan make:model Post -mc
Make CRUD (สร้าง Read Update DELETE) และใส่ทั้งหมดลงใน PostController.php เพื่อควบคุมแอพการจัดการข้อมูล/http/controllers/postcontroller.php
public function create(Request $request)
{
// Validate the request...
$request->validate([
'title' => 'required',
'content' => 'required',
]);
$post = new Post;
$post->title = $request->title;
$post->content = $request->content;
$post->username = auth()->user()->name;//auth()->id()
$post->save();
return back();
}
public function update(Request $request)
{
// Validate the request...
$request->validate([
'title' => 'required',
'content' => 'required',
]);
$post = Post::find($request->idpost);
$post->title = $request->title;
$post->content = $request->content;
$post->save();
return redirect('/home');
}
public function delete(Request $request)
{
$post = Post::find($request->idpost);
$post->delete();
return back();
}
หากต้องการใช้คอนโทรลเลอร์ใส่ไว้ในเส้นทาง/web.php คุณสามารถใส่รหัสของคุณลงในเส้นทาง/web.php ได้โดยตรง แต่ขอแนะนำให้ใส่ในแอพ/http/คอนโทรลเลอร์เพื่อให้รหัสของคุณสามารถจัดระเบียบได้มากขึ้น
Route::get('/', 'HomeController@index');
Route::get('/detail/{post}', 'HomeController@detail');
Auth::routes();
Route::get('/home', 'HomeController@home')->name('home');
Route::get('/home/edit/{idpost}', 'HomeController@edit');
Route::post('/post/create', 'PostController@create');
Route::post('/post/update/{idpost}', 'PostController@update');
Route::get('/post/delete/{idpost}', 'PostController@delete');
จัดการมุมมองของเว็บไซต์ด้วยเทมเพลตใบมีด การใช้เทมเพลตใบมีดทำให้การสร้างหน้า HTML ง่ายขึ้น ตัวอย่าง:
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8">
@foreach ($post as $p)
<p>
<h4><a href="/detail/{{$p->id}}">{{ $p->title }}</a></h4>
{{ $p->created_at->toFormattedDateString() }} <span style="float:right">Author : {{ $p->username }}</span>
</p>
@endforeach
</div>
</div>
</div>
@endsection
ใน Laravel มีสองวิธีในการควบคุมฐานข้อมูล กับผู้สร้างแบบสอบถามและมีคารมคมคาย Laravel ถูกสร้างขึ้นโดย Laravel เพื่อให้การจัดการฐานข้อมูลง่ายขึ้น
Get Data Example with Query Bulider
DB::table('users')->get();
DB::table('users')->where('name', 'John')->first();
Get Data Example with Eloquent
AppFlight::all();
AppFlight::where('active', 1)->orderBy('name', 'desc')->take(10)->get();
บางส่วนของพื้นฐานโดยใช้ Laravel คุณสามารถใช้โครงการนี้เพื่ออ้างอิง เรียกใช้โครงการนี้บนคอมพิวเตอร์ของคุณเองเพื่อดูว่า Laravel พื้นฐานทำงานอย่างไร