1년 정도 Laravel을 했기 때문에 개인적인 몰입과 게시판 제작!
Advent Calendar 2019의 7일째 기사입니다.
지난해 6월부터 업무 중에 Laravel을 사용할 수 있도록 웹 시스템을 개발했다.집에서 복습할 때도 게시판을 만들었다.
일과 자신이 1년 정도 걸렸는데 개인적으로 느낀 라벨의 몰입점에 대한 정리와 간단한 실시, 제가 만든 게시판을 소개하고 싶습니다.
몰입도와 해결 방법
생각나는 것만 있어.사실 더 많은 일이 있을 텐데...
뭐 공부 해요?😓
암호화 키 오류가 설정되지 않았습니다.
시작 후 화면을 확인한 후 "No application encryption key has been specified."에 대한 오류 정보...
다음 명령으로 설치하면env의 APP_KEY는 값을 설정하여 정상적으로 작동할 수 있다.
php artisan key:generate
.env가 불러오지 않았습니다.
왜 그런지 모르겠어요.env를 읽을 수 없습니다. 전달된 매개 변수가 비어 오류가 발생했습니다.
htmlspecialchars() expects parameter 1 to be string, object given
bootstrap/cache/config.php의 캐시 파일을 삭제합니다.게시할 때 오류가 발생합니다.
@csrf form에 넣는 것을 잊어버릴 가능성이 있기 때문에 미리 form 라벨에 넣으세요.
<form action="{{ route('board.save') }}" method="POST" id="make_board" class="mt-3">
@csrf
<div class="form-group">
helper를 불러올 수 없습니다.
헬퍼를 만드는 프로젝트에서git로 원본을 찾은 후 시작하면 헬퍼가 없는 오류가 발생할 수 있습니다.
composer dump-autoload
해봤던 게시판 소개.
복습으로 해봤어요.로그인이 없는 것은 매우 간단한 것이다.
소스 여기 있다!🥳
https://github.com/YasuakiHirano/codelike_bbs
동작 확인
여기에 동작 환경을 배치해 봤어요!
=> http://codelikebbs.codelike.info/
기술 요점
FormRequest를 썼습니다.
게시판 저장을 검증할 때 다른 파일로 FormRequest를 만들어 사용하도록 조금만 노력하세요.
・ 검증용 양식 요청.
BoardCreateRequest.php(열기 클릭)
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class BoardCreateRequest extends FormRequest
{
public function authorize()
{
return true;
}
/**
* バリデーションルール
* @return array
*/
public function rules()
{
return [
'board_title' => 'required|max:30',
'user_name' => 'required|max:30',
'about_text' => 'required|max:5000',
'password' => 'required|max:30'
];
}
/**
* バリデーション項目名定義
* @return array
*/
public function attributes()
{
return [
'board_title' => 'タイトル',
'user_name' => '名前',
'about_text' => '説明文',
'password' => 'パスワード'
];
}
/**
* バリデーションメッセージ
* @return array
*/
public function messages()
{
return [
'board_title.required' => ':attributeを入力してください。',
'board_title.max' => ':attributeは30文字以下で入力してください。',
'user_name.required' => ':attributeを入力してください。',
'user_name.max' => ':attributeは30文字以下で入力してください。',
'about_text.required' => ':attributeを入力してください。',
'about_text.max' => ':attributeは5000文字以下で入力してください。',
'password.required' => ':attributeを入力してください。',
'password.max' => ':attributeは30文字以下で入力してください。'
];
}
}
위의 요청은 저장 방법에서 다음과 같이 사용됩니다.방법을 요청할 때 검증하고 안 되면 돌려줘.
Controller에 쓰지 않아도 돼서 시원해요.😄
/**
* 新規掲示板保存
* @param BoardCreateRequest $request
* @return RedirectResponse
*/
public function save(BoardCreateRequest $request)
{
/** @var Board $board */
$board = new Board();
$board->fill([
'title' => $request->board_title,
'user_name' => $request->user_name,
'about_text' => $request->about_text,
'password' => $request->password
])->save();
return redirect()->route("top.index");
}
라우팅 선택 시 이름을 입력하십시오.
쓸 때name를 추가하면form의 액션 지정과 화면 이동이 수월합니다.
아래와 같이 각각name을 더하면...
web.php
// 掲示板一覧[トップ]
Route::get('/', 'TopPage@index')->name("top.index");
// 掲示板作成
Route::get('/post', 'MakeBoard@index')->name("board.index");
Route::post('/post/save', 'MakeBoard@save')->name("board.save");
// 掲示板詳細
Route::get('/detail', 'DetailPage@index')->name("detail.index");
Route::post('/detail/response', 'DetailPage@makeResponse')->name("detail.response");
Route::post('/detail/delete', 'DetailPage@deleteBoard')->name("detail.delete");
form,link,redirect를 쓸 때route 조수는 아래와 같이 쉽게 호출할 수 있어서 좋습니다.form 태그 위치
<form action="{{ route('board.save') }}" method="POST" id="make_board" class="mt-3">
링크 표시 <div class="mt-3 mb-3 row justify-content-end">
<a href="{{ route('board.index') }}" class="btn btn-primary mr-3">新規登録</a>
</div>
redirect 장소 return redirect()->route("top.index");
form의 입력부에 old를 넣어주세요.
old 조수를 사용하면 오류를 검증하는 경우에도 값이 폼에 유지되기 때문에 쉽게 사용할 수 있는 투고 폼이 됩니다.
old의 매개 변수에 텍스트 상자와 영역의name를 설정하면 됩니다!
게시물 양식의 일부
<div class="form-group">
<label for="board_title">タイトル</label>
<input type="text" class="form-control" name="board_title" id="board_title" value="{{ old('board_title') }}" maxlength="140">
</div>
<div class="form-group">
<label for="user_name" class="col-form-label">名前</label>
<input type="text" class="form-control" name="user_name" id="user_name" value="{{ old('user_name') }}" maxlength="140">
</div>
관련 링크
나는 자신의 블로그에 제작 과정을 썼다.
Laravel5.8로 게시판 만들기 (5)
Laravel5.8로 게시판 만들기 (4)
Laravel5.8로 게시판 만들기 (3)
Laravel5.8로 게시판 만들기 (2)
Laravel5.8로 게시판 만들기 (1)
다른 하고 싶은 일
이번에는 그러지 못하고 구상으로 다음과 같은 내용을 고려했다.
나는 앞으로 한번 설치해 보고 싶다.
・업무 중에 UseCase를 사용하였으나 이번에는 샘플에 편입되지 않았습니다.
• Laravel 로그인 기능 내장
·Api화, Nuxt.js와 합작하여 게시판을 제작하다.
끝날 때
이미 나온 내용이 졸렬한 보도인 것 같습니다. 끝까지 봐주셔서 감사합니다.😆
조금만 자극이 돼서 도움이 됐으면 좋겠어요.앞으로도 PHP 개발에서 Laravel을 적극 활용하겠습니다!
Reference
이 문제에 관하여(1년 정도 Laravel을 했기 때문에 개인적인 몰입과 게시판 제작!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yasuaki0206/items/cdbc90c43704953b5eb6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)