公司導入 Laravel 分享 - 10. 進階實作 - 修改視圖

create.blade.php
  1. @extends('layouts.app')
  2.  
  3. @section('content')
  4. <div class="container">
  5. <div class="page-header">
  6. <h1>新增文章</h1>
  7. </div>
  8. {!! Form::open(['route' => 'post.store', 'class' => 'form-horizontal']) !!}
  9. <div class="form-group">
  10. {!! Form::label('title', '標題', ['class' => 'col-sm-2 control-label']) !!}
  11. <div class="col-sm-10">
  12. {!! Form::text('title', null, ['class' => 'form-control']) !!}
  13. </div>
  14. </div>
  15. <div class="form-group">
  16. {!! Form::label('content', '內容', ['class' => 'col-sm-2 control-label']) !!}
  17. <div class="col-sm-10">
  18. {!! Form::textarea('content', null, ['class' => 'form-control']) !!}
  19. </div>
  20. </div>
  21. <div class="form-group">
  22. <div class="col-sm-offset-2 col-sm-10">
  23. {!! Form::submit('送出', ['class' => 'btn btn-primary']) !!}
  24. </div>
  25. </div>
  26. {!! Form::close() !!}
  27. </div>
  28. @endsection
edit.blade.php
  1. @extends('layouts.app')
  2.  
  3. @section('content')
  4. <div class="container">
  5. <div class="page-header">
  6. <h1>編輯文章</h1>
  7. </div>
  8. {!! Form::model($post, ['route' => ['post.update', $post->id], 'method' => 'put', 'class' => 'form-horizontal']) !!}
  9. <div class="form-group">
  10. {!! Form::label('title', '標題', ['class' => 'col-sm-2 control-label']) !!}
  11. <div class="col-sm-10">
  12. {!! Form::text('title', null, ['class' => 'form-control']) !!}
  13. </div>
  14. </div>
  15. <div class="form-group">
  16. {!! Form::label('content', '內容', ['class' => 'col-sm-2 control-label']) !!}
  17. <div class="col-sm-10">
  18. {!! Form::textarea('content', null, ['class' => 'form-control']) !!}
  19. </div>
  20. </div>
  21. <div class="form-group">
  22. <div class="col-sm-offset-2 col-sm-10">
  23. {!! Form::submit('更新', ['class' => 'btn btn-primary']) !!}
  24. </div>
  25. </div>
  26. {!! Form::close() !!}
  27. </div>
  28. @endsection

有沒有發現一樣的地方?沒有使用套件的時候,編輯畫面表單的值需要我們自己去填充,如果表單欄位很多的時候超級麻煩,而且因為這一點點的不一樣使得我們表單要拉出來寫也不是,不拉出來又覺得詭異,雖然我們也可以自己判斷 isset($post->title) ? $post->title : null 這樣寫下去樣板就更髒了,這時候套件的好處就體現出來了。

所以我們再修改一下
create.blade.php
  1. @extends('layouts.app')
  2.  
  3. @section('content')
  4. <div class="container">
  5. <div class="page-header">
  6. <h1>新增文章</h1>
  7. </div>
  8. {!! Form::open(['route' => 'post.store', 'class' => 'form-horizontal']) !!}
  9.  
  10. @include('post._form')
  11.  
  12. <div class="form-group">
  13. <div class="col-sm-offset-2 col-sm-10">
  14. {!! Form::submit('送出', ['class' => 'btn btn-primary']) !!}
  15. </div>
  16. </div>
  17. {!! Form::close() !!}
  18. </div>
  19. @endsection
edit.blade.php
  1. @extends('layouts.app')
  2.  
  3. @section('content')
  4. <div class="container">
  5. <div class="page-header">
  6. <h1>編輯文章</h1>
  7. </div>
  8. {!! Form::model($post, ['route' => ['post.update', $post->id], 'method' => 'put', 'class' => 'form-horizontal']) !!}
  9.  
  10. @include('post._form')
  11.  
  12. <div class="form-group">
  13. <div class="col-sm-offset-2 col-sm-10">
  14. {!! Form::submit('更新', ['class' => 'btn btn-primary']) !!}
  15. </div>
  16. </div>
  17. {!! Form::close() !!}
  18. </div>
  19. @endsection
_form.blade.php
  1. <div class="form-group">
  2. {!! Form::label('title', '標題', ['class' => 'col-sm-2 control-label']) !!}
  3. <div class="col-sm-10">
  4. {!! Form::text('title', null, ['class' => 'form-control']) !!}
  5. </div>
  6. </div>
  7. <div class="form-group">
  8. {!! Form::label('content', '內容', ['class' => 'col-sm-2 control-label']) !!}
  9. <div class="col-sm-10">
  10. {!! Form::textarea('content', null, ['class' => 'form-control']) !!}
  11. </div>
  12. </div>

留言