Các kiến thức nền tảng lập trình laravel framework
- Hướng dẫn cài đặt laravel Framework
-
-
Cài global laravel trên mac : composer global require laravel/installer
-
sudo nano ~/.bashrc sau đó soạn export PATH=”$HOME/.composer/vendor/bin:$PATH”
-
Chạy source ~/.bashrc
- Cài global laravel trên ubuntu
-
Giống mac nhưng là 2 dòng dưới: export PATH=”$PATH:~/.config/composer/vendor/bin” alias laravel=’~/.config/composer/vendor/bin/laravel’
- sudo composer create-project –prefer-dist laravel/laravel testlaravel
- Cấu hình database trong .env
-
-
- Ngay sau khi cài xong cd vào thư mục dự án rồi chạy lệnh: (Kiểm tra đã có ui:Auth chưa bằng lệnh php artisan list)
- composer require laravel/ui
- php artisan ui:auth(Tạo login và register)
- php artisan ui:controllers
- Lệnh trong laravel: php artisan xxx ví dụ :
- Ngay sau khi cài xong cd vào thư mục dự án rồi chạy lệnh: (Kiểm tra đã có ui:Auth chưa bằng lệnh php artisan list)
php artisan make:migration create_users_table –create=users
php artisan make:migration create_logs_table –create=logs
php artisan make:migration create_transactions_table –create=transactions
php artisan make:controller loginController (không tạo phương thức đi kèm)
php artisan make:controller Test –resource (tạo các phương thức index,create,show,edit,update,destroy sẵn đi kèm)
Màu xanh là tên file .php màu tím là tạo tên bảng trên database
Các file .php sẽ được tạo ra và lưu trong thư mục database/migrations
php artisan migrate để tạo toàn bộ các bảng vào database đã được khai báo khi cấu hình trong database/migrations
php artisan migrate:refresh làm mới lại các table trên cơ sở dữ liệu
-
- Layout nằm trong :
- Views các file có dạng xxx.blade.php
- Muốn sử dụng thư viện nào dùng use:
- Ví dụ:
- use DB (sử dụng thư viện database)
- use Session (sử dụng thư viện session)
- Ví dụ:
- Layout nằm trong :
Phát triển dự án PHP với mô hình MVC
AJAX, Xử lý XML/JSON trong PHP
Lập trình nâng cao với PHP
trong web.php
Route::get(‘/’, function () {
// return view(‘welcome’);
return view(‘main’, [‘name’ => ‘Phovv’,’age’=>44]);
});
Route::get(‘/products’, [ProductsController::class,’index’]);
(cần khai báo use App\Http\Controllers\ProductsController; trước đó)
Route::get(‘pro’,’App\Http\Controllers\ProductsController@index’);
Pattern
Route::get(‘/products/{id}/{name}’, [ProductsController::class,’hien’]) -> where(‘id’,'[0-9]+’);
Route::get(‘/products/{id}/{name}’, [ProductsController::class,’hien’]) -> where(‘name’,'[a-zA-Z0-9]+’);
Route::get(‘/products/{id}/{name}’, [ProductsController::class,’hien’]) ->
where([‘id’=>'[0-9]+’,’name’=>'[a-zA-Z]+’]);
trong blade
<h1>Mr {{ $name}}</h1>
<hr/>
<h2>Age {{ $age}}</h1>
<hr/>
current time is
{{ time() }}
<hr/>
current date is
{{ now() }}
@include(‘header’)
<hr/>
@include(‘body’)
<hr/>
@include(‘footer’)
@unless (Auth::check())
You are not signed in.
@else
You are signed in.
@endunless
@switch($age)
@case(1)
First case…
@break
@case(2)
Second case…
@break
@default
Default case…
@endswitch
{{– This com — }}
@for ($i = 0; $i < 10; $i++)
The current value is {{ $i }}
@endfor
@foreach ($users as $user)
<p>This is {{ $user}}</p>
@endforeach
@php
$lop = 12
@endphp
@while ($lop<40)
<p>I’m looping forever. {{$lop}}</p>
@php
$lop += 1
@endphp
@endwhile
Dynamic route:
Route::get(‘/user/{id}’, function ($id) {
return view(‘pages.detail.’.$id);
// return ‘User ‘.$id;
});
Route::get(‘/{dir}/{file}’, function ($dir,$file) {
return view(‘pages.’.$dir.’.’.$file, [‘name’ => ‘hai’,’age’=>44,’users’=>[‘anh’,’hai’]]);
});
Route::get(‘/{leve1}/{level2}/{level3}/{file}’, function ($level1,$level2,$level3,$file) {
return view(‘pages.’.$level1.’.’.$level2.’.’.$level3.’.’.$file, [‘name’ => ‘hai’,’age’=>44,’users’=>[‘anh’,’hai’]]);
});
asset()
nếu không khai báo giá trị cho ASSET_URL (.env) mặc định sẽ lấy đường dẫn hiện thời ví dụ https://thoaimaichon.com/chuỗi trong hàm asset nếu chuỗi đó không chứa x:// còn nếu chứa x:// thì chỉ lấy chuỗi đó.
Hosting ứng dụng web PHP
https://laravel.thoaimaichon.com
các function sử dụng
php artisan route:list liệt kê các route hiện có
Route::get(‘/json’, function () {
return response()->json([‘name’=>’pho’,’age’=>’44’]);
});
Sự khác biệt url và asset
{{ url(‘search’,[‘dienmay’,’tivi’,’Sony’]) }} kết qủa trả về là …/search/dienmay/tivi/Sony
{{ url(‘search’,[‘dienmay’,’tivi’,’Sony’]) }} kết quả trả về là …/search
Cài npm , nodejs
npm install
cấu hình file webpack.mix.js
const mix = require(‘laravel-mix’);
/*
|————————————————————————–
| Mix Asset Management
|————————————————————————–
|
| Mix provides a clean, fluent API for defining some Webpack build steps
| for your Laravel application. By default, we are compiling the Sass
| file for the application as well as bundling up all the JS files.
|
*/
mix.react(‘resources/js/SP_all.js’, ‘public/js’)
.sass(‘resources/sass/app.scss’, ‘public/css’);
Sau khi khai báo file
webpack.mix.js chạy npm run dev (npm run watch để theo dõi) để chạy webpack đóng gói js, css vào thư mục public mong muốn
Thư viện liên quan DB
use Illuminate\support\facades\DB;
$tb = DB::table(‘users’)->select([‘name’,’email’,’id’])->wherebetween(‘id’,[$id,$id+2])->get();
->orwhere(‘id’,’>’,$id)
->orwhere(‘name’,’xx’)
->insert([‘name’=>now().’xxxxxxx’,’email’=>now().’vu@gmail.com’,’password’=>’fsadfsdafds’])
->where(‘id’,’=’,$id)
->update([‘name’=>now(),’email’=>now().now().’@gmail.com’,’password’=>’fsadfsdafds’])
$tb = DB::table(‘users’)
->where(‘id’,$id)
->delete()
;
use App\Models\Car;
class CarsController extends Controller
public function index()
{
// $cars = Car::all();
$cars = Car::where([‘name’=>’Audi’])->orwhere([‘name’=>’BMW’]) ->get();
// dd($car);
returnview(‘index’,[‘cars’=>$cars]);
}
$cars = Car::where(‘id’, ‘>’, 1)->first();
$id =1;
// $cars = Car::find($id);
$cars = Car::findOrFail($id);
$cars = Car::where(‘name’, ‘like’ , ‘%d%’)->take(10)->get();
public function store(Request $request)
{
$car = new car;
$car->name = $request->name;
$car->founded = $request->founded;
$car->description = $request->description;
$car->save();
return redirect(‘/cars’);
public function edit($id)
{
$car = Car::where(‘id’,$id)->get();
// dd($cars);
return view(‘cars.edit’,[‘car’=>$car]);
}
public function update(Request $request, $id)
{
$car = Car::where(‘id’,$id)->first()->update([
‘name’=>$request->name,
‘founded’=>$request->founded,
‘description’=>$request->description,
]);
returnredirect(‘/cars’);
}
API:
Khai báo trong api.php
Route::apiresource(‘/post’,’App\Http\Controllers\Api\PostController’)->except([‘index’,’show’]);
Route::apiresource(‘/post’,’App\Http\Controllers\Api\PostController’)->only([‘index’,’show’]);
Route::get(‘/users’, function () {
returnUserResource::collection(User::all());
});
Route::get(‘/alluser’, function () {
returndd(newUserResource(User::all()));
});
Cách migrate:refresh table chỉ định
How to migrate:reresh specific table ?
php artisan migrate:refresh –path=/database/migrations/2021_03_18_143031_create_admins_table.php
Sử dụng extension REST Client để debug Api trực tiếp trên Vscode thay Postman