Sau khi cài đặt xong composer và Laravel, ta có thể tạo một dự án Laravel theo hai cách sau Tạo dự án với phiên bản Laravel ta cần
composer create-project laravel/laravel nameOfYourSite "~5.5.7"Create project with new version
composer create-project laravel/laravel nameOfYourSiteMột số tập tin quan trọng
composer update
8
Chứa cài đặt và khóa của các dịch vụ sử dụng trong dự án. Ví dụ như. cơ sở dữ liệu, các dịch vụ lưu trữ, người gửi thư,
composer update
9
Chứa cài đặt và gói của Laravel mà chúng ta cần cài đặt
php artisan key:generate
0
Chứa các cài đặt liên quan đến javascript và sử dụng quản lý npm, cấu hình các gói cài đặt thông qua lệnh npm
lưu ý khi tải dự án từ github về chạy thử
Chạy cài đặt lại các gói bằng lệnh
composer updateTạo khóa ứng dụng
php artisan key:generate Cài đặt chủ đề bootstrap, js, ghépCách 1. Sử dụng Bootstrap CDN
Thêm các thiết bị sau vào tệp bố cục gốc của dự án, ở đây là trang chủ. lưỡi. php
cách 2. Sử dụng các tệp Bootstrap được biên dịch sẵn
Chúng ta vào trang chủ của Bootstrap, tải các tập tin của nó về rồi thêm vào thư mục như sau
Trần Tuấn Anh @tuananh_vc
Theo dõi
829 28 24
Đã đăng vào ngày 23 tháng 9 năm 2019 3. 15 SA 9 phút đọc
2. 6K
0
2
Hướng dẫn cơ bản phát triển web với khung phát triển Laravel (Phần 1)- Report
- Add to series of me
Bài đăng này đã không được cập nhật trong 3 năm
Tạo dự án
Sau khi cài đặt xong composer và Laravel, ta có thể tạo một dự án Laravel theo hai cách sau Tạo dự án với phiên bản Laravel ta cần
composer create-project laravel/laravel nameOfYourSite "~5.5.7"Create project with new version
composer create-project laravel/laravel nameOfYourSiteMột số tập tin quan trọng
composer update
8
Chứa cài đặt và khóa của các dịch vụ sử dụng trong dự án. Ví dụ như. cơ sở dữ liệu, các dịch vụ lưu trữ, người gửi thư,
composer update
9
Chứa cài đặt và gói của Laravel mà chúng ta cần cài đặt
php artisan key:generate
0
Chứa các cài đặt liên quan đến javascript và sử dụng quản lý npm, cấu hình các gói cài đặt thông qua lệnh npm
lưu ý khi tải dự án từ github về chạy thử
Chạy cài đặt lại các gói bằng lệnh
composer updateTạo khóa ứng dụng
php artisan key:generate Cài đặt chủ đề bootstrap, js, ghépCách 1. Sử dụng Bootstrap CDN
Thêm các thiết bị sau vào tệp bố cục gốc của dự án, ở đây là trang chủ. lưỡi. php
cách 2. Sử dụng các tệp Bootstrap được biên dịch sẵn
Chúng ta vào trang chủ của Bootstrap, tải các tập tin của nó về rồi thêm vào thư mục như sau
Thêm các thiết bị sau vào tệp bố cục gốc của dự án, ở đây là trang chủ. lưỡi. php
Cách 3. Cài đặt qua npm Laravel Mix
Chúng ta sử dụng nó bằng cách định nghĩa gói tập tin. json as after
Mở cmd từ thư mục gốc của dự án để chạy lệnh sau khi cài đặt Laravel Mix
npm installChúng ta viết một nhiệm vụ kết hợp mới trong webpack. pha trộn. js. Mặc định, chúng ta có thể tìm thấy các biên dịch đã được biên dịch từ ứng dụng. sass file to app. css và đóng gói tất cả tệp JS trong thư mục sau
composer create-project laravel/laravel nameOfYourSite 0To run Mix task, ta using the command after
composer create-project laravel/laravel nameOfYourSite 1Cấu hình cơ sở dữ liệuTo create a login form, before the first to connect application with database. Cấu hình tệp nằm ở php artisan key:generate
1, mở ra ta có thể thấy Laravel hỗ trợ kết nối 3 kiểu cơ sở dữ liệu. php artisan key:generate
2và cấu hình kết nối mặc định với mysql
Trong bài viết này ta sẽ sử dụng DB mysql, bạn có thể thay đổi ngay trong tệp cấu hình php artisan key:generate
1
Hoặc nếu để ý ta sẽ thấy, Laravel đã cấu hình sẵn cho ta hàm php artisan key:generate
4 để gọi đến các cấu hình trong tệp php artisan key:generate
5 (nếu chưa có tệp này trong ứng dụng, bạn sao chép từ tệp php artisan key:generate
6 rồi đổi tên đi). Làm như vậy để kết nối DB chỉ cần thay đổi tệp. env, real time
1. Create file migration
Create migrations information
composer create-project laravel/laravel nameOfYourSite 4Tạo di chuyển mới cho bảng
composer create-project laravel/laravel nameOfYourSite 5Tạo bảng điều chỉnh bảng điều chỉnh
composer create-project laravel/laravel nameOfYourSite 62. Cách viết trong khi di chuyển tệp
chức năng lên(). Có tác dụng thực hiện di chuyển
Khi muốn tạo mới 1 cột thì sẽ viết trong hàm php artisan key:generate
7
Như chúng ta thấy trong trường hợp cập nhật 1 cột, chúng ta sử dụng hàm php artisan key:generate
8, muốn sử dụng hàm php artisan key:generate
8 chúng ta phải cài đặt thêm tên gói là ________9____0
chức năng xuống (). Có tác dụng thực thi rollback lệnh (về trước đó)
Trong hàm này sẽ thực thi các lệnh đảo ngược với hàm php artisan key:generate
7
Đối với việc tạo bảng mới, thì mặc định chức năng <html>
<head>
<title>Home Page</title>
<link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Home Page</div>
<div class="quote">Our Home page!</div>
</div>
</div>
<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
</body>
</html>
2 của nó sẽ là xóa bảng đó đi bằng lệnh
<html>
<head>
<title>Home Page</title>
<link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Home Page</div>
<div class="quote">Our Home page!</div>
</div>
</div>
<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
</body>
</html>
3
Đối với việc sửa bảng đã sửa thì trong hàm down() phải viết các hàm ngược lại với hàm up()
Lược đồ mặt tiền chức năng. Facade là chức năng hỗ trợ để thực hiện các chức năng như tạo, cập nhật, xóa bảng
- Tạo bảng mới
<html>
<head>
<title>Home Page</title>
<link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Home Page</div>
<div class="quote">Our Home page!</div>
</div>
</div>
<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
</body>
</html>
4
-Chỉnh sửa bảng
<html>
<head>
<title>Home Page</title>
<link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Home Page</div>
<div class="quote">Our Home page!</div>
</div>
</div>
<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
</body>
</html>
5
- Đổi tên bảng. từ danh mục thành danh mục
<html>
<head>
<title>Home Page</title>
<link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Home Page</div>
<div class="quote">Our Home page!</div>
</div>
</div>
<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
</body>
</html>
6
- Xóa bảng
<html>
<head>
<title>Home Page</title>
<link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Home Page</div>
<div class="quote">Our Home page!</div>
</div>
</div>
<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
</body>
</html>
7
Các câu lệnh tạo bảng cấu trúc hoặc sử dụng trong Migrations
Cột sửa đổi
Tạo các điều kiện buộc cho các bảng
https. //viblo. asia/p/migration-trong-laravel-va-nhung-dieu-can-biet-ByEZkyEy5Q0
Chú ý nếu không di chuyển mà không chạy được thì các bạn có thể tách ra làm 2 file migration để chạy
To drop a foreign ta used
<html>
<head>
<title>Home Page</title>
<link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Home Page</div>
<div class="quote">Our Home page!</div>
</div>
</div>
<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
</body>
</html>
8
Chúng ta nên để ý quy tắc đặt tên nước ngoài <html>
<head>
<title>Home Page</title>
<link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Home Page</div>
<div class="quote">Our Home page!</div>
</div>
</div>
<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
</body>
</html>
9
3. Di chuyển một số câu lệnh
Chạy di chuyển
<html>
<head>
<title>Home Page</title>
<link rel="stylesheet" href="{!! asset('css/bootstrap.min.css') !!}">
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Home Page</div>
<div class="quote">Our Home page!</div>
</div>
</div>
<script src="{!! asset('js/jquery-3.3.1.min.js') !!}"></script>
<script src="{!! asset('js/popper.min.js') !!}"></script>
<script src="{!! asset('js/bootstrap.min.js') !!}"></script>
</body>
</html>
0
Đặt lại di chuyển
Lệnh trên sẽ khôi phục toàn bộ cơ sở dữ liệu của bạn hay đúng hơn là chạy toàn bộ chức năng down() trong quá trình di chuyển tệp của bạn. <html>
<head>
<title>Home Page</title>
<link rel="stylesheet" href="{!! asset('css/bootstrap.min.css') !!}">
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Home Page</div>
<div class="quote">Our Home page!</div>
</div>
</div>
<script src="{!! asset('js/jquery-3.3.1.min.js') !!}"></script>
<script src="{!! asset('js/popper.min.js') !!}"></script>
<script src="{!! asset('js/bootstrap.min.js') !!}"></script>
</body>
</html>
1
Chạy lại di chuyển
Lệnh này Mục đích khôi phục toàn bộ cơ sở dữ liệu đồng thời chạy lại luôn toàn bộ các tệp di chuyển của bạn
<html>
<head>
<title>Home Page</title>
<link rel="stylesheet" href="{!! asset('css/bootstrap.min.css') !!}">
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Home Page</div>
<div class="quote">Our Home page!</div>
</div>
</div>
<script src="{!! asset('js/jquery-3.3.1.min.js') !!}"></script>
<script src="{!! asset('js/popper.min.js') !!}"></script>
<script src="{!! asset('js/bootstrap.min.js') !!}"></script>
</body>
</html>
2
Lệnh này Mục đích rollback toàn bộ CSDL đồng thời chạy lại luôn toàn bộ các tập tin di chuyển đồng thời chạy tất cả các seeder
<html>
<head>
<title>Home Page</title>
<link rel="stylesheet" href="{!! asset('css/bootstrap.min.css') !!}">
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Home Page</div>
<div class="quote">Our Home page!</div>
</div>
</div>
<script src="{!! asset('js/jquery-3.3.1.min.js') !!}"></script>
<script src="{!! asset('js/popper.min.js') !!}"></script>
<script src="{!! asset('js/bootstrap.min.js') !!}"></script>
</body>
</html>
3
Rollback di chuyển
<html>
<head>
<title>Home Page</title>
<link rel="stylesheet" href="{!! asset('css/bootstrap.min.css') !!}">
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Home Page</div>
<div class="quote">Our Home page!</div>
</div>
</div>
<script src="{!! asset('js/jquery-3.3.1.min.js') !!}"></script>
<script src="{!! asset('js/popper.min.js') !!}"></script>
<script src="{!! asset('js/bootstrap.min.js') !!}"></script>
</body>
</html>
4
Với lệnh này, toàn bộ tập tin có lô mới nhất trong bảng di chuyển sẽ chạy tất cả các chức năng down() hay chính xác hơn là đảo ngược thay đổi mà nó tạo ra cho cơ sở dữ liệu
Nếu bạn không xác định được nội dung cho chức năng down, thì lệnh rollback coi như không có hiệu lực đồng nghĩa với việc di chuyển vẫn tồn tại trong cơ sở dữ liệu
Cách 1. Tạo dữ liệu trực tiếp
Bước 1. Tạo 1 seeder mới cho bảng người dùng có tên là <html>
<head>
<title>Home Page</title>
<link rel="stylesheet" href="{!! asset('css/bootstrap.min.css') !!}">
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Home Page</div>
<div class="quote">Our Home page!</div>
</div>
</div>
<script src="{!! asset('js/jquery-3.3.1.min.js') !!}"></script>
<script src="{!! asset('js/popper.min.js') !!}"></script>
<script src="{!! asset('js/bootstrap.min.js') !!}"></script>
</body>
</html>
5
<html>
<head>
<title>Home Page</title>
<link rel="stylesheet" href="{!! asset('css/bootstrap.min.css') !!}">
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Home Page</div>
<div class="quote">Our Home page!</div>
</div>
</div>
<script src="{!! asset('js/jquery-3.3.1.min.js') !!}"></script>
<script src="{!! asset('js/popper.min.js') !!}"></script>
<script src="{!! asset('js/bootstrap.min.js') !!}"></script>
</body>
</html>
6
Bước 2. Người dùngTableSeeder. php in the directory <html>
<head>
<title>Home Page</title>
<link rel="stylesheet" href="{!! asset('css/bootstrap.min.css') !!}">
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Home Page</div>
<div class="quote">Our Home page!</div>
</div>
</div>
<script src="{!! asset('js/jquery-3.3.1.min.js') !!}"></script>
<script src="{!! asset('js/popper.min.js') !!}"></script>
<script src="{!! asset('js/bootstrap.min.js') !!}"></script>
</body>
</html>
7
Bước 3. Bây giờ chúng ta chỉ cần gọi lớp <html>
<head>
<title>Home Page</title>
<link rel="stylesheet" href="{!! asset('css/bootstrap.min.css') !!}">
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Home Page</div>
<div class="quote">Our Home page!</div>
</div>
</div>
<script src="{!! asset('js/jquery-3.3.1.min.js') !!}"></script>
<script src="{!! asset('js/popper.min.js') !!}"></script>
<script src="{!! asset('js/bootstrap.min.js') !!}"></script>
</body>
</html>
5 vào hàm run() trong file seeder gốc
Bước 4. Chúng ta sẽ có 2 cách chạy
Cách 1. Chỉ định trực tiếp lớp seeder cần chạy bằng lệnh
<html>
<head>
<title>Home Page</title>
<link rel="stylesheet" href="{!! asset('css/bootstrap.min.css') !!}">
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Home Page</div>
<div class="quote">Our Home page!</div>
</div>
</div>
<script src="{!! asset('js/jquery-3.3.1.min.js') !!}"></script>
<script src="{!! asset('js/popper.min.js') !!}"></script>
<script src="{!! asset('js/bootstrap.min.js') !!}"></script>
</body>
</html>
9
cách 2. Chạy tất cả các seeder được gọi vào tệp seeder gốc
{
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "npm run development -- --watch",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "^0.18",
"bootstrap": "^4.0.0",
"cross-env": "^5.1",
"jquery": "^3.2",
"laravel-mix": "^2.0",
"lodash": "^4.17.5",
"popper.js": "^1.12",
"vue": "^2.5.7"
}
}
0
cách 2. Tạo Nhà Máy Mô Hình
Chúng ta sẽ tiếp tục ví dụ với bảng người dùng bằng cách tạo Model Factory cho nó và cùng cảm nhận nhé
Bước 1. Tạo Model Factory cho người dùng bảng với tên {
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "npm run development -- --watch",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "^0.18",
"bootstrap": "^4.0.0",
"cross-env": "^5.1",
"jquery": "^3.2",
"laravel-mix": "^2.0",
"lodash": "^4.17.5",
"popper.js": "^1.12",
"vue": "^2.5.7"
}
}
1
Bước 2. Sau khi hoàn thành bước 1, chúng ta sẽ được 1 tệp {
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "npm run development -- --watch",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "^0.18",
"bootstrap": "^4.0.0",
"cross-env": "^5.1",
"jquery": "^3.2",
"laravel-mix": "^2.0",
"lodash": "^4.17.5",
"popper.js": "^1.12",
"vue": "^2.5.7"
}
}
1 trong thư mục {
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "npm run development -- --watch",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "^0.18",
"bootstrap": "^4.0.0",
"cross-env": "^5.1",
"jquery": "^3.2",
"laravel-mix": "^2.0",
"lodash": "^4.17.5",
"popper.js": "^1.12",
"vue": "^2.5.7"
}
}
3
Tiếp theo chúng ta sẽ tạo dữ liệu, trong Model Factory đã có sẵn thư viện tạo dữ liệu giả mạo Faker
Bước 3. Bây giờ trong hàm { "private": true, "scripts": { "dev": "npm run development", "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "watch": "npm run development -- --watch", "watch-poll": "npm run watch -- --watch-poll", "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", "prod": "npm run production", "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" }, "devDependencies": { "axios": "^0.18", "bootstrap": "^4.0.0", "cross-env": "^5.1", "jquery": "^3.2", "laravel-mix": "^2.0", "lodash": "^4.17.5", "popper.js": "^1.12", "vue": "^2.5.7" } } 4 của lớp { "private": true, "scripts": { "dev": "npm run development", "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "watch": "npm run development -- --watch", "watch-poll": "npm run watch -- --watch-poll", "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", "prod": "npm run production", "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" }, "devDependencies": { "axios": "^0.18", "bootstrap": "^4.0.0", "cross-env": "^5.1", "jquery": "^3.2", "laravel-mix": "^2.0", "lodash": "^4.17.5", "popper.js": "^1.12", "vue": "^2.5.7" } } 5 chúng ta sử dụng trình trợ giúp hàm { "private": true, "scripts": { "dev": "npm run development", "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "watch": "npm run development -- --watch", "watch-poll": "npm run watch -- --watch-poll", "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", "prod": "npm run production", "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" }, "devDependencies": { "axios": "^0.18", "bootstrap": "^4.0.0", "cross-env": "^5.1", "jquery": "^3.2", "laravel-mix": "^2.0", "lodash": "^4.17.5", "popper.js": "^1.12", "vue": "^2.5.7" } } 6 với 2 đối số truyền vào
- Các mô hình lớp cần tạo dữ liệu
- Số bản ghi cần tạo
Trong các dự án Laravel, chúng tôi thường áp dụng mẫu thiết kế Repository Pattern để triển khai dự án
Repository Pattern là gì?
- Repository Pattern là lớp trung gian giữa tầng Business Logic và Data Access, giúp truy cập dữ liệu chặt chẽ và bảo mật hơn
- Repository đóng vai trò là lớp kết nối giữa tầng Business và Model của ứng dụng
Một số lý do chung ta nên sử dụng Repository Pattern
- Một nơi duy nhất để thay đổi quyền truy cập dữ liệu cũng như xử lý dữ liệu
- Một nơi duy nhất chịu trách nhiệm cho công việc ánh xạ các bảng vào đối tượng
- Tăng tính bảo mật và rõ ràng cho mã
- Rất dễ dàng để thay thế một Kho lưu trữ bằng một triển khai giả cho công việc thử nghiệm, vì vậy bạn không cần chuẩn bị một cơ sở dữ liệu có sẵn
Sử dụng Repository Pattern trong Laravel?
Tạo một lớp định nghĩa một Lớp giao diện chung cho các kho lưu trữ lớp, ở đây mình tạo {
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "npm run development -- --watch",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "^0.18",
"bootstrap": "^4.0.0",
"cross-env": "^5.1",
"jquery": "^3.2",
"laravel-mix": "^2.0",
"lodash": "^4.17.5",
"popper.js": "^1.12",
"vue": "^2.5.7"
}
}
7 trong {
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "npm run development -- --watch",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "^0.18",
"bootstrap": "^4.0.0",
"cross-env": "^5.1",
"jquery": "^3.2",
"laravel-mix": "^2.0",
"lodash": "^4.17.5",
"popper.js": "^1.12",
"vue": "^2.5.7"
}
}
8
https. //github. com/tuananh97/quickstart/blob/master/app/Repositories/EloquentRepository. php
Với mỗi Model, tạo một kho lưu trữ lớp để định nghĩa các phương thức. Ví dụ như
Trong bộ điều khiển tương ứng với hàm bổ sung { "private": true, "scripts": { "dev": "npm run development", "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "watch": "npm run development -- --watch", "watch-poll": "npm run watch -- --watch-poll", "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", "prod": "npm run production", "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" }, "devDependencies": { "axios": "^0.18", "bootstrap": "^4.0.0", "cross-env": "^5.1", "jquery": "^3.2", "laravel-mix": "^2.0", "lodash": "^4.17.5", "popper.js": "^1.12", "vue": "^2.5.7" } } 9 để khởi tạo kho lưu trữ sử dụng trong các chức năng như sau
"require": { "php": "^7.1.3", "aws/aws-sdk-php": "^3.108", "fideloper/proxy": "^4.0", "laravel/framework": "5.7.*", "laravel/socialite": "^4.1", "laravel/tinker": "^1.0", "laravelcollective/html": "^5.7", "league/flysystem-aws-s3-v3": "^1.0" }, 3Tham khảohttps. //viblo. asia/p/seeder-va-model-factory-trong-laravel-vyDZOx6Plwj https. //họclaravel. net/books/laravel/building-our-first-website https. //viblo. asia/p/tim-hieu-ve-repository-pattern-trong-laravel-part-ii-oZVRgl2EMmg5