PHP新手30天實戰金流
, Laravel
執行 php artisan make:controller Api/v1/PersonController
新增 controller
舊的目錄:
新的目錄:
將舊的 Controller 的程式碼貼到新的 controller裡,然後刪掉
在 route/api.php
中, 原本 Controller 的路徑加上 Api\v1
測試:http://localhost:8000/api/person/3
php artisan make:resource v2/PersonResource
和php artisan make:controller Api/v2/PersonController
public function toArray($request)
{
return [
'info' => $this->last_name .' '. $this->email,
'pwd' => $this->password,
];
}
use App\Http\Resources\v2\PersonResource;
use App\Person;
然後寫一個簡單的方法(show):
class PersonController extends Controller
{
public function show(Person $person): PersonResource
{
return new PersonResource($person);
}
}
當我們使用 Laravel 6 提供的 Auth 套件做內建的 user model 的身份驗證時,需要經過信箱確認 user 才能成功登入。因此我們將信箱確認的流程加進我們的平台中。
首先在環境檔設定我們要使用的 email server 。 沙拉是到 mailtrap 註冊一個測試用的email,免費方案可以有500封。
在檔案.env
中依照註冊的信箱設定 Mail Driver
MAIL_ENCRYPTION=tls
在 app/User.php
中,加 implements MustVerifyEmail
,讓我們的 User 類別實作認證信箱的介面
class User extends Authenticatable implements MustVerifyEmail
{}
app/Http/Controllers/HomeController.php
中
use App\User;
public function __construct()
{
$this->middleware(['auth','verified']);
}
public function index()
{
$user = auth()->user();
echo $user->name;
if ($user->name =="sarah"){
return view('admin/new_object');
}else{
return view('customer/shopping_mall');
}
}
routes/web.php
Auth::routes(['verify' => true]);
routes/api.php
將我們想要有經過身份驗證才能訪問的頁面都設定在中介層之後Route::group(['middleware' => 'auth:api'], function () {
Route::get('/person/{person}');
Route::get('/test_shop/new_object');
});
註冊帳號後,到測試信箱收驗證信
resources/views/master.blade.php
加登出功能<a href="{{ route('logout') }}" onclick="event.preventDefault();
document.getElementById('logout-form').submit();">
{{ __('Logout') }}
</a>
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
@csrf
</form>
OK 今天先到這裡! 第五天會實作一點點前端 Shopping 的部分!
晚生學習分享所學經驗,若內容有誤或不清楚,煩請不吝指教!更是歡迎各位大神多多補充,感謝萬分!