[Laravel 5] 筆記12 Easy Auth

2015-03-15

https://laracasts.com/series/laravel-5-fundamentals/episodes/15

剛安裝好 laravel 的時候
裡面會預設有 Auth 相關的檔案 這節介紹了一點這個 Auth 內建的用法
在講這之前 有先講了一個 route 的用法
▼ app/Http/routes.php

Route::controllers([
	'auth' => 'Auth\AuthController',
	'password' => 'Auth\PasswordController',
]);

使用這個方法 可以將多個規則直接寫在 controller 裡面而不用一個一個寫在 routes 裡
controller 裡面寫法如下
( AuthController 有使用 trait 檔案為 /vendor/laravel/framework/src/illuminate/Foundation/Auth/AuthenticatesAndRegistersUsers.php )

	// get 到網址 auth/register
	public function getRegister()
	{
		return view('auth.register');
	}

	// post 到網址 /auth/register
	public function postRegister(Request $request)
	{
		/* something */
	}

 
其實註冊、登入、登出功能都做好了
有個地方可以加一下
登入後會轉入到的頁面
▼ app/Http/Controllers/Auth/AuthController.php

class AuthController extends Controller {

	// 加上這行 登入後就會轉入 /articles 詳情看 trait
	protected $redirectTo = "/articles";

}

 
接著有說明儲存文章時
怎麼把 user_id 一併存入
▼ app/Http/Controllers/ArticlesController.php

    // 修改這個 method 內容
    public function store(ArticleRequest $request)
    {
        // 登入後 可以使用這樣的方式儲存 user_id 到這篇 article
        $article = new Article($request->all());
        // 因為有在 app/user.php 裡面設置 articles() 即與 articles 的關聯
        // 所以可以這樣使用 會將 user_id 存入 article 裡
        \Auth::user()->articles()->save($article);

        return redirect('articles');
    }