Laravel5 튜토리얼 블로그 돌아가기 (2) 블로그 기사 투고 양식 만들기
라우팅 설정
routes/web.php
를 열고 아래와 같이 라우팅을 추가합니다.routes/web.php
// http://{ホスト名}/admin/form に GET でアクセスすると、AdminBlogController の form メソッドを実行するという意味
// name メソッドでエイリアスをつけることができる
Route::get('admin/form', 'AdminBlogController@form')->name('admin_form');
post로 액세스하고 싶은 경우는
Route::post()
를, PUT로 액세스하고 싶은 경우는 Route::put()
를 지정합니다.그 밖에도 여러가지 사용법이 있으므로, 별칭도 포함해 쫓아 소개해 갑니다. 신경이 쓰이는 분은 문서 를 참조해 주세요.
컨트롤러 작성
그런 다음 컨트롤러를 만듭니다. 관리 화면 측의 처리가 되므로 AdminBlogController 라는 이름의 컨트롤러 클래스를 만듭니다. 컨트롤러 클래스는 다음 artisan 명령으로 작성할 수 있습니다.
php artisan make:controller AdminBlogController
명령을 실행하면
app/Http/Controllers/AdminBlogController.php
라는 파일이 되어 있다고 생각하므로, 그것을 열고 아래와 같이 편집합니다. 지정한 View 템플릿을 표시하는 것만의 처리입니다.app/Http/Controllers/AdminBlogController.php
<?php
namespace App\Http\Controllers;
class AdminBlogController extends Controller
{
/**
* ブログ記事入力フォーム
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function form()
{
// resources/views 配下にある、どのテンプレートを使うか指定。ディレクトリの階層はピリオドで表現できる
// この例では resources/views/admin_blog/form.blade.php が読み込まれる
return view('admin_blog.form');
}
}
View 템플릿 만들기
이제 로드할 템플릿
resources/views/admin_blog/form.blade.php
를 만듭니다. Laravel은 Blade라는 템플릿을 사용합니다.뷰 템플리트는 artisan 명령으로 작성할 수 없으므로 디렉토리를 포함하여 자체적으로 작성하십시오. Blade 템플릿에는
.blade.php
라는 확장자가 있습니다. 익숙해질 때까지 파일 이름에 유의하십시오.이번에는, 우선 아래와 같이, 극히 간소한 블로그 투고 폼을 준비합니다.
resources/views/admin_blog/form.blade.php
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ブログ記事投稿フォーム</title>
</head>
<body>
<h2>ブログ記事投稿・編集</h2>
<form method="POST">
日付<br>
<input name="post_date" size="20" value="" placeholder="日付を入力して下さい。"><br><br>
タイトル<br>
<input name="title" value="" placeholder="タイトルを入力して下さい。"><br><br>
本文<br>
<textarea cols="50" rows="15" name="body" placeholder="本文を入力してください。"></textarea><br>
<input type="submit" value="送信">
{{--CSRFトークンが生成される--}}
{{ csrf_field() }}
</form>
</body>
</html>
여기서는 폼 파트의 이름이 articles 테이블의 열 이름과 동일하다는 점에 유의하십시오. 이것이 나중에 효과가 있습니다.
CSRF용 토큰을 자동으로 생성해 준다
{{ csrf_field() }}
를 잊지 않고 써 둡시다. 이 토큰은 GET 메소드 이외로 송신하는 경우는 필수로, 이것이 없으면 Exception 를 토해 버립니다.지금까지 가능하면
http://{ホスト名}/admin/form
로 이동하여 양식이 표시되는지 확인하십시오.단, 이대로라면, 외형이 조금 좋지 않기 때문에, bootstrap 과 CSS 를 사용해, 조금 보기 좋게 해 둡니다.
resources/views/admin_blog/form.blade.php
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ブログ記事投稿フォーム</title>
{{--asset ヘルパー関数を使うと public/ 配下ファイルへのURLを生成してくれる--}}
{{--bootstrap.min.css は最初からインストールされている--}}
<link rel="stylesheet" href="{{ asset('/css/bootstrap.min.css') }}">
<link rel="stylesheet" href="{{ asset('/css/blog.css') }}">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h2>ブログ記事投稿・編集</h2>
<form method="POST">
<div class="form-group">
<label>日付</label>
<input class="form-control" name="post_date" size="20" value="" placeholder="日付を入力して下さい。">
</div>
<div class="form-group">
<label>タイトル</label>
<input class="form-control" name="title" value="" placeholder="タイトルを入力して下さい。">
</div>
<div class="form-group">
<label>本文</label>
<textarea class="form-control" rows="15" name="body" placeholder="本文を入力してください。"></textarea>
</div>
<input type="submit" class="btn btn-primary btn-sm" value="送信">
{{--CSRFトークンが生成される--}}
{{ csrf_field() }}
</form>
</div>
</div>
</div>
</body>
</html>
public/css/blog.css
body {
font-size: 12px;
color: #696969;
}
h2 {
font-size: 24px;
border-bottom: 1px solid #1e90ff;
padding: 5px 0 5px 0;
margin-bottom: 25px;
}
.form-group input[name="post_date"] {
width: 200px;
}
이제 아래와 같은 외형이 됩니다.
다음 번에는 블로그 기사의 보존 처리를 구현하겠습니다.
참고 자료
Laravel 한국어 문서
프로그램 소스(github)
Reference
이 문제에 관하여(Laravel5 튜토리얼 블로그 돌아가기 (2) 블로그 기사 투고 양식 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yumgoo17/items/55152da02372dd203bcb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)