Veu.jsの “v-for” 繰り返し部分での双方向データバインディング(data-binding , v-model)

Veu.jsの “v-for” 繰り返し部分での双方向データバインディング(data-binding , v-model)

が、うまく行かなく、始めたところでなかなか情報も見つけにくかったのでメモがてら。

<div id="items">
    <table>
             <tr v-for="(cut,index) in items">
                <td>アイテム{{ index+1 }}</td>
                <td>
                        <input class="u-wd200 u-mr10" name="mst_cut" v-model="items[index]"/>
                </td>
            </tr>
    </table>
</div>

Laravelでバリデーションをモデルにまとめて記載する。

Laravelでバリデーションをモデルにまとめて記載する。

LaravelでRESTfulなルーティングをしていまいした。

  1. items/create 新規作成画面
    2.POST送信(POST items/ )
    3.カスタムリクエストでバリデーション)
    →エラー発生時に自動で items/create にリダイレクト
    4.items/create 画面にエラー表示

大きな不満はなかったのですが、3の瞬間になにかしたくなる。or リクエストファイルを作るのが面倒そうなどあり、Modelに無理やり書いてみた。

<?php

namespace App;

use IlluminateDatabaseEloquentModel;
use SymfonyComponentHttpFoundationRequest;
use Validator;

class Products extends Model
{
    
    /**
     * create Validator Instance
     *
     * @param  IlluminateHttpRequest $request
     * @return IlluminateValidationValidator
     */
    
    public static function getValidator(Request $request)
    {
        $validator = Validator::make(
            $request->all(),
            [
                'name' => 'required',
                'jan' => 'required',
            ],
            [
                'name.required' => '名は必須項目です。',
                'jan.required' => 'JANコードは必須項目です。'
            ]
            );
        return $validator;
    }
    
}

まぁさほどモデルがコードが増えることは無さそうなので、これである程度シンプル・手が届きやすくなりそう。(カスタムリクエストにする方がベストプラクティスっぽくあるが、お一人開発なのでとりあえず。

Laravel5.5 $requestの _tokenや、_methodを簡単に省いて保存する方法。

add,store,update,editなどのアクションで、$requestを受け取って保存するのですが、_token/_methodなどの保存には関連しないフィールドを、Modelへとデータを一つ一つ移していると大変だったので。

※validationとか全く無考慮です。(実際は入力チェックを

public function store(Request $request)
{
    $client = new Client;
    $params = $request->except('_token'); //_tokenを除いて配列取得
    $client->setRawAttributes($params);
    $client->save();
    return Redirect::route("clients.index");
}   
public function update(Request $request, $id)
{
    $params = $request->except(['_token','_method']);
    Client::where('id',$id)->update($params);
    return Redirect::route("clients.index");
}

LaravelのフォームでPUT/DELETEリクエストを送る。

LaravelのフォームでPUT/DELETEリクエストを送る。

LaravelなどのフレームワークでRESTfulなルーティングを行っている場合に、ブラウザのフォームではPUT/DELETEを送れないのですが、hiddenフィールドで name=“_method” value=“PUT or DELETE” とすればPUTやDELETEとして扱える。

<form method="POST" action="/foo/bar">
    <input type="hidden" name="_method" value="PUT">
</form>

また、laracollectiveのFormファザードだともっと楽に使える。

 {!! Form::open(['url' => 'foo/bar','method'=>'put']) !!}

とすればOK

rsyncで.(ドット)から始まる隠しファイルを除いて同期。

rsyncで.(ドット)から始まる隠しファイルを除いて同期。

あるプロジェクトで、._hogehoge.html などのファイル? や、.DS_Storeなどがアップされており、それを除外して同期をしたのでメモ。(といってexcludeしているのみです)

$ rsync -avz --exclude "**/.*"  USER_NAME@example.com:/var/www/html/ /var/www/html/

Laravelのカスタマイズいろいろ。

Laravelのカスタマイズいろいろ。

こんばんは。遅らばせながら、最近Laravel初めました。
最初はスタンダードな振る舞いを理解したいところですが、業務案件でいろいろ仕様がきまっておりなにがなんでも合わせろやてきな感じな今日このごろ。命名規則なんてく○くらえ的な実装をしています。

そこでいろいろ、カスタムしていくわけで、その方法をメモしておきます。

公開フォルダ(ドキュメントルート/public)を変更する。

こちらは、サーバー側でApache完備されて、/var/www/htmlがルートな件で、publicを/var/www/htmlに当てる件。

//まずpublicをhtmlにリネーム
$ mv ./public ./html
//続いてapp/Application.phpを作成し以下の通り publicPath()を上書きする。
<?php

namespace App;

class Application extends IlluminateFoundationApplication {
    
    /**
     * Get the path to the public / web directory.
     * @return string
     */
    public function publicPath()
    {
        return $this->basePath . DIRECTORY_SEPARATOR .'html';
    }
}

つづいてルーティングにプリフィックスを加える

システム管理者、社内管理者、外部業者、クライアントetcとそれぞれでURLを変えたいぞー。

ルート設定ファイルで グループを設定すればよし。

//routes/web.php
Route::prefix('admin')->group(function () {
    Route::get('/users/login', 'UsersController@login');
}
Route::prefix('manager')->group(function () {
    Route::get('/users/login', 'UsersController@login');
}
Route::prefix('suppliyer')->group(function () {
    Route::get('/users/login', 'UsersController@login');
}
Route::prefix('client')->group(function () {
    Route::get('/users/login', 'UsersController@login');
}
//それぞれ、以下でルーティングできるようになる。
https://example.com/admin/users/login
https://example.com/admin/usmanagerers/login
https://example.com/admin/suppliyer/login
https://example.com/admin/client/login

モデルのカスタム

primaryKey : 主キー、$incrementing : インクリメント(true/false)、$table : テーブル


class Post extends Model
{
    public $primaryKey = 'post_id';
    public $incrementing = true;
    protected $table = 'post';
}   

SublimeTextのよく忘れるショートカットメモ

SublimeTextのよく忘れるショートカットメモ

大文字・小文字

  • 大文字 : Cmd + K → U
  • 小文字 : Cmd + K → L

行コピー

  • Cmd + Shift + D

Alfred2 でParallelsのアプリケーションが検索されないようにする。

Alfred2 でParallelsのアプリケーションが検索されないようにする。

以下のようにひどい。


システム環境設定の SpotlightのPrivacyのところに ホームフォルダにある、Applications(Parallels)をドラッグする。


Alfredの設定でキャッシュをクリアする。


完了


PHPのpassword_hash(),password_verify()を使った場合に別の言語などに移行しても大丈夫?→大丈夫だった。

いつもよくCakePHPをフレームワークで使っていて、saltなどがなかったので、Laravelのフレームワークのパスワードハッシュ方法について調べてみました。(salt,seedとかいらない?と考え)

結果としては password_hash()で自動生成したものを利用していてsalt不要
→ほかの言語でも大丈夫 →ハッシュしたものに含まれるので大丈夫

でした、以下調べたこと。

ハッシュの方法

/vendor/laravel/framework/src/Illuminate/Contracts/Hashing/BcryptHasher.php

で、以下のようにハッシュしている

$hash = password_hash($value, PASSWORD_BCRYPT, [
    'cost' => $this->cost($options),
]);

$valueがパスワードで、PASSWORD_BCRYPT がアルゴリズム(BCrypt)、オプションの’cost’は、BCryptの元Blowfish暗号化に用いるCost、BcryptHasher.phpでデフォルト10(2の10乗回ストレッチ)に設定されている。

BCrypt

sha,md5などが高速化されているのに対し、計算量が多く時間がかる、オフラインでのGPUなどを使った、アタック時のレインボーテーブル生成などに時間がかかる。
またパスワードごとにsaltが違うので、その分レインボーテーブルを作るのに時間がかかる。

ハッシュ化されたパスワードについて

60文字になる。なにか有事に備えDBの桁数などは多めにしておくと良いかも。

$2y$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy

暗号化バージョン : 2y
コスト : 10
ソルト : ‘N9qo8uLOickgx2ZMRZoMye’ (コストの後22文字)
暗号本体 : IjZAgcfl7p92ldGxad68LJZdL17lhWy

で、別の言語に移したらどうなるか?

phpを通してbcryptのルールでハッシュしているので、
Laravel事態がロジックをもたないので、他の言語でも認証OK。

月額契約せずに、短髪でオンラインでFAXを送信する方法

アカウント作ったの忘れそうで、めも。

HELLOFAX
https://app.hellofax.com

アカウント作成し自動返信メールのURLをクリックして、パスワード設定。
そのあと受信(receive)できんから、有料はどう?って進めてくるけど。送信だけならダイジョブなので、無視して進めて送信できます。

アカウント作成

アカウント作成

FAX Noは国番号 81を先頭に + 元の先頭の0は抜いて入力する。

Page 14 of 47

Powered by WordPress & Theme by Anders Norén