Laravelで配列のバリデーションをかけるときに少し試行錯誤をしたので備忘録と、連想配列の記事はあるけど配列の記事はあんまり無いなーという印象だったので。 バージョン - laravel/framework 5.5.43 - PHP 7.1 リクエスト例
Docker Toolboxでlaradockを動かそうとしたらmysqlが起動しない! エラーメッセージでググったらこちらの記事がヒット。 https://qiita.com/lara_bell/items/d4bd1340a5cc7dfcfcb4 この記事を参考に修正したところ、今度は違うエラーが。 $ docker logs 2f9127b2dd11 Initializing database 2018-10-25T13:48:24.815150Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future
例えばフィールドの値よりも、入力値が大きい場合はエラーをだすなど、 validatorでextendを使うとルールを拡張できる $valueは入力値。returnでfalseになるとエラーとして返される。 Validator::extend('pointcheck', function($attribute, $value, $parameters, $validator){ $user = Auth::user(); return TotalPoint::where('user_id',$user->id)->where('give_point','>=',$value)->exists(); }); $rules = [ 'point' => 'required|integer|min:1|pointcheck', ]; $messages = [ 'point.pointcheck'
読み込みの分岐 例えばページによってヘッダーやフッターを切り分けたい時があると思います。 下層ページはヘッダーのデザインが違うとかメイン画像サイズが変わるとかメニューが変わるとか そういう時に使えるタグです。 「"About"というスラッグのページだけはabout_header.phpを読み込む。」 「"Service"というスラッグのページだけはservice_header.phpを読み込む。」 「それ以外のページは共通でheader.phpを読み込む。」 といった感じになります。 <?php if($this->BcBaser->getContentsName() === 'About'): ?> <?php $this->BcBaser->element('about_header') ?> <?php elseif($this->BcBaser->getContentsName()
RustでLinux kernel moduleが書ける…。噂の真相を突き止めるため、GitHubへと向かった。 ネタばれ。噂は本当だった。 まず最初に見つかったのが、rust.koです。 内容は、kernel moduleをロードすると、"Hello from Rust!++"をprintkで出力する、というものです。 ただ、3年前からメンテナンスされていません。早々に見切りをつけて次を探しました。 次に発見したのが、kernel-rouletteでした。 character device driverを実装しており、デバイスファイルをreadすると、一定確率でkernel panicを起こす、というdriverでした。 なんて迷惑なdriverでしょうか こういう高度な技術を使って、無駄なことするの、好きです。 最終更新日が7ヶ月前なので、トラブルがあっても、これからなんとかなりそうで
Rustで言語処理100本ノックしています。 第3章: 正規表現 この章ではgzipの読み込みとしてflate2を、jsonの読み込みとしてserde_jsonを、正規表現のライブラリとしてregexを使用しています。 後編はこちら 20. JSONデータの読み込み Wikipedia記事のJSONファイルを読み込み,「イギリス」に関する記事本文を表示せよ.問題21-29では,ここで抽出した記事本文に対して実行せよ. 取得したファイルを見てみると{"text": "本文","title": "タイトル"}が列挙されているという形だったので、この形に限定して考えました。 #[derive(Deserialize)] pub struct Article { pub text: String, pub title: String, } pub fn json_read_about(path:
なにがしたい? APIなのにHTMLエラーが出る APIは、ブラウザで開いてもJSONで返して欲しい WEBとしても、APIとしても、さらっと動くLaravelさん。コントローラでは、WEBはHTMLで、APIはJSONで返すように、コードを分けていることが多いと思いますが、例えばエラーが起きたらどうしていますか? JSONなのに、HTMLのエラー画面が返ってきたりしていませんか? 実は、Laravelは、特に何もしなくてもうまいことやってくれます。 リクエストされているのがHTMLなのか、JSONなのかを自動的に判断して、WEBならHTML、APIならJSONでエラーを返します。 でも、例えば、APIのエンドポイントをWEBブラウザから試験的に開こうとすると、Laravelは WEBモードだと判断して、エラーハンドリングの挙動が変わります。 そうじゃなくて、APIは何が起ころうと、JSO
APIのバリデーションも(フロントと同様)FormRequestで行いたい場合の対応。 やりたいこと エラー時のJSONメッセージのカスタマイズ(statusとかの追加)したい URLパラメータ(/users/{id}/{password})もバリデーションしたい JSONのカスタマイズのイメージは { "status": "NG", "date": "2018-10-24", "message": "password must be at least 4 chars。" } こな感じ。 status入れたり、エラーメッセージはバリデーション機能が返すものを利用するけどkeyは変えたいとか。 実装 FormRequestを利用していろいろ記述する。 ルーティング api.phpに下記を記述。 POST送信時にURLパラメータ(idやpassword)もValidateしたい。POSTではn
これはなに? 標準で多種多様なルールを用意してくれているLaravelのバリデータ。 中にはすごい高機能なものもありますが、そういうのは良いんですよ、ドキュメントをよく読むと思うので。 でも、一見カンタンでわかりやすいはずなのに、微妙に挙動が「思ってたんと違う」というものがあります。 そんな「当たり前だと思っていたルール」を、実際に動かしてみて、結果をまとめてみました。 すべてのバリデーションルールは対象にしていません……。 公式ドキュメントはコチラ Laravel5.6 バリデーション 参考記事 Laravelのバリデーションで指定できる内容をざっくりまとめ直しました。 いつもお世話になっています(^^) Laravel Validation メモ やりたいことが先に来ているので 具体的にどう使うかのイメージを掴むことができます。 フィールドの有無(存在系) 最もよく使い、みなさんもよく
YYPHP#57「PHPでマルチスレッドについて聞きたい、php-srcのコミットを日々追っている人を見つけた、オブジェクト指向について話ができたら、Dockerを使ってLaravelプロジェクトを本番デプロイするやり方、他の言語とPHPはどのように違うか、Ubuntu・CentOS・ArchiLinux、アセンブリとOS開発」RubyPHPJavaScriptGoYYPHP これは2018年10月19日に開催したPHPerイベントYYPHP#57のイベントレポートです。 YYPHPは一言で「PHPerの部室」です。PHPについて、雑に、ゆるく、ワイワイ話し合う集いです。毎回お題を決めずに雑談を出発点にいろいろなことを突発的にやります。集まった人でコードリーディングをすることもあれば、一緒に開発ツールを触ってみたり、フレームワークについての情報交換をすることもあります。開催はほぼ毎週、高田
<?php namespace Sample; class Sample { // $a + $b を返す public function Add($a, $b) { return $a + $b; } // $a - $b を返す(実際は間違っている) public function Sub($a, $b) { return $a + $b; } } <?php use PHPUnit\Framework\TestCase; use Sample\Sample; class SampleTest extends PHPUnit\Framework\TestCase { public function test_add() { $sample = new Sample(); $this->assertEquals(10, $sample->Add(4, 6)); } /** * @data
YYPHP#54「PhpStormの法人ライセンスは1台にしか入れられない?、Laravelでブログを作るには?、Chromeのみ対応のシステムをIE11対応させたいが…、みんながDockerをどんなふうに使っているのか開発のしかたなどを聞きたい、PHPはフランス語に弱い?、前前人者が作ったシステムが良くわからない、型とオブジェクト指向がマイブームで再燃しているのはなぜか?、PhpStormのEAPでコレクション型のジェネリクス表記ができるようになったよ、技術書典5の案内」PHPPhpStormLaravelDockerYYPHP これは2018年09月28日に開催したPHPerイベントYYPHP#54のイベントレポートです。 YYPHPは一言で「PHPerの部室」です。PHPについて、雑に、ゆるく、ワイワイ話し合う集いです。毎回お題を決めずに雑談を出発点にいろいろなことを突発的にやります
YYPHP#55「技術書典5おすすめサークル、技術書典5 『PHP中級者を目指す』のお披露目、肥大化したファイルのクラス分割をどうしたらいいか、クラスにゲッターとセッターっているの?、クラス増えすぎたときにどう分類整理する?、TDDで抽象度の高いクラスのテストどうする?、$_POSTの並び順って信用できるか?、PHPのエンジニアだったら知っておきたい関数やライブラリを教えて!、エンジニアの健康管理どうやってる?、目標設定ってどうやっている?、PHP最新事情について」 PHPプログラミングLaravelYYPHP技術書典 これは2018年10月05日に開催したPHPerイベントYYPHP#55のイベントレポートです。 YYPHPは一言で「PHPerの部室」です。PHPについて、雑に、ゆるく、ワイワイ話し合う集いです。毎回お題を決めずに雑談を出発点にいろいろなことを突発的にやります。集まった人
ディレクトリ構造 Laravelのresourcesのjsの中を以下のようにしました。 Redux-Wayとも呼べない中途半端なもの。結局containerは利用しませんでした。 実装 app.js Laravelにおけるエンドポイント。まあ、初期jsを読み込んでるだけ。 import React from 'react'; import ReactDOM from 'react-dom'; import { Provider, connect } from 'react-redux'; import createStore from './createStore'; import TodoApp from './components/TodoApp'; const store = createStore(); ReactDOM.render( <Provider store={store
結論:sleep()とwakeup()を使う 以下のようなSimpleXMLElementをプロパティとして持ったクラスのオブジェクトを、Serializeしてキャッシュしたい場合があります。 <?php namespace App; use SimpleXMLElement; class MyClass { /** * @var SimpleXMLElement */ public $xml; /** * @param SimpleXMLElement $xml * @return void */ public function __construct(SimpleXMLElement $xml) { $this->xml = $xml; } } 例えばこのクラスのオブジェクトをLaravelでそのままキャッシュしようとすると、「SimpleXMLElementをシリアライズできないよ」
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く