卡
看我每天都卡就知道我雖然很忙 但是卻很想完成比賽了...
雖然很想不拖戲 但是該說的還是要說...
關於vhosts的部分 有沒有人覺得用了反而變慢?
是因為他對多行解析才會變這樣... 我也不知道怎麼冒出這個問題的
反正把原本很多行的改成一行就好了
像我的就是這樣127.0.0.1 localhost ironman.local
來來來 看過來 這個php artisan make:controller Web/CRUDController --resource
WHAT RESOURCE? WHY RESOURCE?
還記得上次才在社團與人爭論過RESTful...
另外還有GraphQL 這邊就不多說了
先講為什麼要加web 只是為了與api做區分而已
相信有底子的各位都知道所謂的GET POST 這些HTTP請求
其中GET負責獲取資料 也可以在url上帶一些參數 如 /user?id=1 諸如此類 用明碼傳輸也沒有問題的請求
另外還有POST 例如要傳輸密碼 就不會被看到
POST通常被用來CRUD中的CU部分 至於D的話有點尷尬 兩個做起來都沒有太大的差別 但通常被歸類在POST處理的部分
那什麼是RESTful呢?
其實就是讓POST請求更語意化
Verb | URI | Action | Route Name |
---|---|---|---|
GET | /photos | index | photos.index |
GET | /photos/create | create | photos.create |
POST | /photos | store | photos.store |
GET | /photos/{photo} | show | photos.show |
GET | /photos/{photo}/edit | edit | photos.edit |
PUT/PATCH | /photos/{photo} | update | photos.update |
DELETE | /photos/{photo} | destroy | photos.destroy |
(拉這個表很累) | |||
Laravel已經幫我們列出這個表格 其中CRUD又被拆分為頁面以及行為 |
index 顧名思義就是列表、清單
create 其實是指新增時的頁面 所以是GET
store 就是新增一筆資料來進行"儲存"的這個動作
show 與index不同在於 index是多筆 show是單筆
edit 編輯頁面
update PUT 全部更新
PATCH 部分更新
destroy 摧毀,即刪除
話說我覺得一上來就講這個有點難...
反正照做就對啦~
下完指令會看到檔案(app\Http\Controllers\Web\CRUDController.php
)長這個樣子
(抱歉是反斜線 因為我在Windows)
<?php
namespace App\Http\Controllers\web;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class CRUDController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
大致上的function幫你建好 只差在內容了 其實內容也十分簡單
但是有沒有人想過 怎麼去操作它? 是路由 我加了路由
(對不起 我星爺粉)
路由呢 在5.多版(忘了 不是很重要)將路由拆成了web與api 其中為了區分兩者 在中介層(middleware)中動了手腳 這個看之後有沒有機會講到
我們先來到這個檔案routes\web.php
會有個這個
Route::get('/', function () {
return view('welcome');
});
看你是要刪掉還是留著用來看你的專案有沒有壞掉(抱歉 手滑 我砍了)
然後添加這行Route::resource('crud', 'Web\CRUDController');
我很懶惰 不管了 就是叫CRUD了
有錯的話一定是斜線方向帶壞我的
這時候可以下指令php artisan route:list
我的長這樣 至於那api/user又是另一回事了 先不理它
至於還有一個方法可以使用
這是官方例子 可以only(只取)想要的 或者是except(不要)不想用的
這時候呢就可以訪問路由啦
如果你看到了Sorry, the page you are looking for could not be found.
表示你跑到了首頁 或者其他不存在的網址...
正確網址在http://ironman.local/crud
然後你會看到這個一片白是正常的 因為controller沒回傳東西
什麼 為什麼是結語 其他東西呢?
聽了學姊的建議之後我決定拆拆拆~ 不然寫完30篇會虛脫
所以我們下集待續啦~(遭扔番茄)