公司導入 Laravel 分享 - 12. 進階實作 - Request & Fillable

一、驗證

建立 request
php artisan make:request PostRequest
修改 request(app/Http/Requests/PostRequest)
  1. class PostRequest extends FormRequest
  2. {
  3. public function authorize()
  4. {
  5. return true;
  6. }
  7.  
  8. public function rules()
  9. {
  10. return [
  11. 'title' => 'required',
  12. 'content' => 'required',
  13. ];
  14. }
  15. }
修改 controller
  1. use App\Http\Requests\PostRequest;
  2. ...
  3. public function store(PostRequest $request)
  4. {
  5. $post = new Post();
  6.  
  7. $post->title = $request->title;
  8. $post->content = $request->content;
  9.  
  10. $post->save();
  11.  
  12. return redirect()->route('post.index');
  13. }
  14.  
  15. public function update(PostRequest $request, Post $post)
  16. {
  17. $post->title = $request->title;
  18. $post->content = $request->content;
  19.  
  20. $post->save();
  21.  
  22. return redirect()->route('post.index');
  23. }
修改 view(create、edit)
  1. @if (count($errors) > 0)
  2. <div class="alert alert-danger">
  3. <ul>
  4. @foreach ($errors->all() as $error)
  5. <li>{{ $error }}</li>
  6. @endforeach
  7. </ul>
  8. </div>
  9. @endif

二、fillable

修改 model
  1. class Post extends Model
  2. {
  3. protected $fillable = ['title', 'content'];
  4. }
修改 controller
  1. public function store(PostRequest $request)
  2. {
  3. Post::create($request->all());
  4.  
  5. return redirect()->route('post.index');
  6. }
  7.  
  8. public function update(PostRequest $request, Post $post)
  9. {
  10. $post->update($request->all());
  11.  
  12. return redirect()->route('post.index');
  13. }

留言