導入1日目で挫折してヘルプお願いした結果どうにか立ち上がるようになりました!
※メモを書いてます。そのうちきれいにします。(2018年6月)
- dockerで開発環境インストール後にやること
- laravel-authのバリデーション日本語化日本語の翻訳ファイルの作り方
- laravel-authのユーザー情報をアップデート+情報追加
- laravel-adminでユーザー権限を追加するlaravel-adminでユーザー権限追加後その権限を$userで取得例:独自USER-dashboardを作成する(初期設定)例:独自USER-dashboardにSidebarをinclude連想配列渡し方1サクラサーバーでlaravelを動かすマークダウンに対応させる(cebe/markdown)ページごとに独自のCSSを追加する
- 単純にformのinput[type=image]でsubmitされた時、publicの特定フォルダにアップする$request->file('image');で取れる値uploadsテーブルにDB登録するuploadしたfileを一覧で表示auth認証した上で$user->idとか$user->nameとか
環境
docker
laravel 5.6
PHP7.1
nginx1.5
mysql5.7
dockerで開発環境
- PHP7+MYSQL5.6+NGINX+PHPMYADMINでdocker-componese.ymlつくる。
- NGINXのdefault.confで初期設定、phpのdockerfileでdocker-php-ext-install pdo_mysql pdo_pgsqlとかごにょごにょ。
- NGINX使うので、mac内部のApache止めた。
- mysqlのportsは設定したほうがいい。
- composerをPC本体にインストール
- docker-compose up -dしてphpのvolumeで指定したフォルダにcomposer経由でlaravelをインストール composer create-project laravel/laravel –prefer-dist
- wwwの位置修正、docker-componese.yml,nginx
- localhostつないで、laravelがインストールされたかチェック
- laradockはいろいろ入りすぎててわかりずらかった。
インストール後にやること
1.PHPのコンテナにexecして(※ココ重要)から、テーブルのマイグレーション
1.config/app.phpの変更
1.ライブラリの追加
laravelを日本語化する
laravel-authのバリデーション日本語化
gitに言語ファイルがアップされてるのでコピる
■Laravel-lang
https://github.com/caouecs/Laravel-lang/tree/master/src
config/app.phpでタイムゾーンを変更
// 'timezone' => 'UTC', 'timezone' => 'Asia/Tokyo',ソースコード装飾ならGoogle code prettify
config/app.phpで先に地域設定(local)を変更
// 'locale' => 'en', 'locale' => 'ja',ソースコード装飾ならGoogle code prettify
日本語の翻訳ファイルの作り方
以下のようなi18n用__(‘XXXX’)の文字があったら、直接編集するのではなくWPでゆうところの.po.mo翻訳ファイルを作りたい。
{{ __('Login)}}ソースコード装飾ならGoogle code prettify
resources/lang/の直下にja.jsonをつくる。スペイン語ならes.json
{ "Login": "ログイン", "Register":"登録", "Logout":"ログアウト" }ソースコード装飾ならGoogle code prettify
laravel-auth
ログイン認証の追加。ログイン・ユーザー登録用の画面が両方作れる
/login 、 /register が自動で生成される
ログイン後は /homeに移動する
laravel-authのユーザー情報をアップデート+情報追加
laravel-admin
ユーザー管理用のアドミンを生成、権限の追加、バックエンドからのユーザー登録・変更・削除が行える
/admin が自動で生成される
laravel-adminでユーザー権限を追加する
1./admin でサブメニューUser ManagerのPermissionsとrolesでadminをつくる
1.usersで権限を与える
1.app/User.php , /routes/web.php , /app/Http/Kernel.phpに小細工
laravel-adminでユーザー権限追加後その権限を$userで取得
<?php $user = Auth::user(); $roles = (Auth::check()) ? $user->roles()->get() : false; ?> @if ( $roles->first()->name == 'admin') <a href="/admin/">管理画面に移動</a> @endifソースコード装飾ならGoogle code prettify
例:独自USER-dashboardを作成する(初期設定)
- /viwe/に/user/とuser.blade.phpを作成
例:独自USER-dashboardにSidebarをinclude
- user.blade.phpに@include(‘user.sidebar’) //このuser.Sidebarは定型文
- /user/にsidebar.blade.phpを作成
連想配列渡し方1
/routes/web.phpでやる
Route::get('/user', function () { $menus = [ [ 'title' => 'menu1', 'url' => '#menu1' ],[ 'title' => 'menu2', 'url' => '#menu2' ] ]; return view('UserDashBoard',[ 'menus' => $menus ]); });ソースコード装飾ならGoogle code prettify
サクラサーバーでlaravelを動かす
以下を参考にさせてもらいました
- おもむろにターミナルを立ち上げる
- サクラサーバーにSSHで接続する( $ ssh {アカウント}@{ドメイン名} )
- Passwordを入れてサクラに入る
% composer global require 'laravel/installer=~1.1'
% ~/.composer/vendor/bin/laravel new laravel_project
- wwwより一個上の階層にlaravel_projectできてる(gitから取る)
- 公開URLを「ドメイン名/bangotech/」にしたいので、「/www/bangotech/」を作成
% cp -r ~/laravel_project/public/* ~/www/bangotech/
でlaravelのpublicファイルを公開ディレクトリにコピー(FTPソフトでOK)- .htaccessを編集(マルチオプション削除)
- /bangotech/index.phpを編集(DIR./../をDIR_./../../)
- URLを叩いたらOK
laravel-authを追加
- おもむろにターミナルを立ち上げる
- サクラサーバーにSSHで接続する( $ ssh {アカウント}@{ドメイン名} )
- Passwordを入れてサクラに入る
- インストールしたディレクトリに移動( cd laravel_project )
- php artisan make:auth
※Could not open input file: artisan が出た場合は、ディレクトリが違う可能性
※DBの初期マイグレーションが終わってなくても勝手にDBmigrateできる
laravel-socialiteを入れる
- laravel-authのmigrate時にできた***_create_users_table.phpを修正
- php artisan migrate:refreshでDBテーブルを作り直す
- app/User.phpを編集
- php artisan make:auth
- composer require laravel/socialite
- config/service.phpと.evn修正
- login.Blende.phpにAタグ追加
マークダウンに対応させる(cebe/markdown)
- composer require cebe/markdown
- text.mbをおく(ex. /public/markdown/text.mb)
- viewつくる
- cebe/markdownの使用通りに$f = file_get_contentsでtext.mbを取得
- cebe/markdownインスタンス呼び出して
- 取得した$mbを追加してしたら
- echo
ページごとに独自のCSSを追加する
親になるlayout配下のファイルに@yield、子になるページに@sectionで追加
@extends('layouts.app') @section('pagecss') <link href="{{ asset('css/ページ名.css') }}" rel="stylesheet"> @endsection
file uploads
単純にformのinput[type=image]でsubmitされた時、publicの特定フォルダにアップする
1.ルーティングのweb.phpでget(初期表示)とpost(POST時)のコントール先を書く(Storeが定型らしい?)
// user/upload Route::get('user/upload','UploadController@create'); Route::post('user/upload','UploadController@store');
2. UploadControllerをつくる php artisan make:Controller Upload
3. use use Illuminate\Http\Request;
4. sroreで受ける( public function store(Request $request){} )
5. バリデーションして、$image->move()で特定のフォルダに移動する
6. return back()->with()で成功時のアナウンス追加
$request->file(‘image’);で取れる値
APIドキュメント
ファイル名(拡張子込):getClientOriginalName();
拡張子:getClientOriginalExtension();
uploadsテーブルにDB登録する
- php artisan make:migration Uploads
- 作ったファイルにid,url,user_id,created_at,nameついか
- php artisan make:model Upload
- php artisan make:controller upload
- もしくは php artisan make:migration Uploads -mcでモデルとコントローラ一緒につくる
uploadしたfileを一覧で表示
auth認証した上で$user->idとか$user->nameとか
- コントローラーの__construct()で$this->middleware(‘auth’)
- $user = \Auth::user();
- $user->idでOK
MYSQL5.6からバリデーションのnullが厳格になった
ので、laravel-auth+そーしゃらいとのときできれば、$providerと$provider_idになにか入れる
コメントを残す