上次介紹完Laravel
的架構介紹,
這次就來介紹它的MVC並實做一次。
先創一個專案名叫project
,終端機輸入
laravel new project
先用終端機進入到mysql
裡創建一個名為project
的資料庫,終端機輸入
create database project;
之後使用文本編輯器開起專案先設定.env
連接到資料庫
,
把DB_DATABASE
、DB_USERNAME
、DB_PASSWORD
更改成自己設定即可。
再來開啟資料庫管理工具
連接到資料庫
,
目的只是方便確認目前資料庫裡的資料概況,
畢竟用圖形工具還是比較美觀且好讀取,
因目前來尚未建立Table
所以是空白狀態。
之後開始建立Model
和Migration
,終端機輸入
php artisan make:model Project -m
這邊會得到兩個檔案,分別是model
和migration
,
先到migration
裡加入column
public function up()
{
Schema::create('projects', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->string('body');
$table->timestamps();
});
}
這邊加入title
、body
兩個欄位,終端機輸入
php artisan migrate
把畫面轉到資料庫管理工具重整後會看到,
一個名為projects
的Table
以及新增的兩個欄位。
再來手動輸入title
和body
的內容,這裡新增三筆資料。
再進到Project.php
也就是Model
檔裡加入
class Project extends Model
{
protected $fillable = [
'title', 'body',
];
}
下一步建立Controller
並設定Route
,終端機輸入
php artisan make:controller ProjectsController
建立完後新增function
到ProjectsController
裡
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Project; //使用Project的model
class ProjectsController extends Controller
{
public function index() //建立名為index的function
{
$projects = Project::all(); //用變數代替資料庫資料
return view('index', compact('projects')); //回傳變數到view
}
}
之後到web.php
加入Route
Route::get('/project', 'ProjectsController@index'); //讓URL導向project
接下來創建我們的View
,到views
的資料夾裡創名為index.blade.php
檔案,blade
是Laravel
模板預設的名稱方便判讀。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Project</title>
</head>
<body>
<div class="container"></div>
<h1>Project</h1>
@foreach($projects as $project) //多筆資料使用迴圈
<h3>
{{$project->title}} //顯示title
<li>{{$project->body}}</li> //顯示body
</h3>
@endforeach
</div>
</body>
</html>
到這步驟我們基本MVC + Route
都已經設定完成,
使用內建伺服器開啟網頁輸入http://127.0.0.1:8000/project
看到以下畫面
這樣就對MVC
有了初步的認識,
自己多動手去做進而去把每一步都串連再一起,
才是真的有把專業知識那為己用哦~
本篇介紹到此,下次見~