のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,683,075人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ[PHPフレームワーク]Laravel

php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
651 : nobodyさん - 2016/03/26(土) 18:46:52.47 ID:???.net (+63,+30,-55)
まあしかしここんところはそんな激しい変更も必要ないじゃん

そんでちゃんと使えるようになると万能感ハンパないわ
一人でいきあたりばったりにやってるからDIやテストは活用してないけど
一人でもそのへんきちんとしたほうが本当はいいんだろうな
652 : nobodyさん - 2016/03/26(土) 20:43:01.47 ID:zEMbv6Qg.net (+19,+29,+0)
そろそろ書籍でて欲しい
653 : nobodyさん - 2016/03/26(土) 22:01:43.23 ID:???.net (+57,+29,-14)
いや、5になったときに、ごっそり変わったけど。
でもしばらくはサポートするらしいから、書籍化とか、勉強するなら今だよね
654 : nobodyさん - 2016/03/26(土) 22:52:25.16 ID:???.net (+75,+29,-106)
ディレクトリ構造とかど派手に変わったりして面を食らうけど
ガイドに従うだけであっさり移行できたんで
追従が大変という印象がほとんどないや

>>643
laravel-ide-helper入れても警告だらけになるのは嫌よね
実装上変え辛い部分だろうし、6辺りで対応してもらえるといいな
655 : nobodyさん - 2016/03/26(土) 22:58:01.72 ID:???.net (+52,+24,-8)
5になったのなんて随分前じゃんw
最近ってのは5.1とか5.2の話ね
656 : nobodyさん - 2016/03/27(日) 23:53:21.03 ID:???.net (+57,+29,-32)
なんていうかララベルって響はいいよな。
なんか、ピクニックみたいな楽しいリズムがあるよ。
コードイグネイターやら、ケークなんて響よりずっと良い。
657 : nobodyさん - 2016/03/28(月) 02:43:08.05 ID:???.net (+57,+29,-4)
昔、魔法少女ララベルってアニメあったな
658 : nobodyさん - 2016/03/28(月) 21:11:12.48 ID:???.net (+3,-30,-104)
クエリビルダーで質問なんですが、
...->union($users)->where('id','1');
というように書いてunionで結合した後にその結果を
条件で抽出したいのですが、
投げられているSQL文を見るとなぜかwhere('id','1')されてから
union($users)されています。

これはクエリビルダーの仕様なのでしょうか?
659 : nobodyさん - 2016/03/28(月) 21:59:42.83 ID:???.net (+57,+29,-29)
順序は関係ないだろうな
Laravel的なやり方からするとそういう場合
クロージャの中にUnionを入れることになりそうだが
実際selectにクロージャを入れられるかどうかは知らない
660 : nobodyさん - 2016/04/03(日) 21:17:17.61 ID:???.net (+3,-30,-251)
Schema::create('profiles', function (Blueprint $table) {

$table->increments('id');

$table->integer('user_id')->index();

$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade');

$table->string('mouse');

$table->string('keyboard');

$table->timestamps();

});

こんな感じのプロフィールを作成しようと考えています。
protected $fillableの場合は、mouseとkeyboardだけで良いと思いますが、
protected $guardedの場合は、どれを指定しておけばよいのでしょうか?
(mouseやkeyboard以外にも追加するとき、いちいちfillableに追加するのが面倒なので)

timestampsなどは自動的にguardedされていませんよね?

このへんの詳細がドキュメントなどに載っていなかったので質問させていただきました。
661 : nobodyさん - 2016/04/03(日) 22:14:10.41 ID:???.net (+3,-30,+0)
guardedプロパティは初期設定がワイルドカードだからノーガード戦法するなら空配列で上書きかな。まあ存在しないカラムに値を代入されたらアウトなので、これだけだと入力チェック必須だよね。

Modelのブート時とかにDB参照して自動的にカラム名持ってくるのはできなくもないかな?


初期設定の値からして、guardedプロパティをワイルドカード、fillableプロパティを最小限で使うのが暗黙的な推奨。

その上で利用の都度、値を1つずつ代入するか、Model::fillable()メソッドを呼び出してfillableを上書き・複数代入できるフィールド名を明示的に指定するかが安全。

と言っても利便性と安全性はトレードオフなので、
1つのモデルに対して複数の新規登録、更新アクションがない場合はfillableプロパティ直指定で済ませる、といったところ。

たまにfillable指定し忘れてキーってなるのは安全のためと思って我慢
662 : nobodyさん - 2016/04/03(日) 23:10:07.07 ID:???.net (+22,-5,-11)
ありがとうございます。
とりあえずはfillableでいこうかと思います。
663 : nobodyさん - 2016/04/04(月) 17:36:02.77 ID:???.net (+3,-30,-185)
Schema::create('profiles', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id') ->unsigned();
$table->string('mouse') ->nullable();
$table->string('keyboard') ->nullable();
$table->timestamps();

$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade');
});

上記のprofilesテーブルに、ユーザー登録時に同時作成(mouseとkeyboardはnull)するにはどうすればよいでしょうか?
profile用のフォームなどは用意せず、ただ単にregisterでユーザー登録された際に、user_idとtimestampsが挿入されるようなシステムにしたいです。
664 : nobodyさん - 2016/04/05(火) 12:05:26.55 ID:???.net (+3,-30,-81)
public static function boot()
{
parent::boot();

self::created(function($user)
{
$profile = new Profile();
$user->profile()->save($profile);
});
}

このコードぶっこんだら出来ました。失礼しました。
665 : nobodyさん - 2016/04/05(火) 17:49:00.86 ID:???.net (+20,-7,-19)
laravelのftpクラスとかありますか?
666 : nobodyさん - 2016/04/07(木) 08:49:25.07 ID:???.net (+57,+29,-23)
そういうのはstorageでやるんだろうなあ
実際のファイルの物理的な場所は
下位のドライバに任せるという発想
667 : nobodyさん - 2016/04/09(土) 18:29:01.00 ID:???.net (-2,-30,-63)
5.2のmake:authでviewに {!! csrf_field() !!}と書かれていたのですが
結局は!マーク無しと変わらないんですかね?

どちらが正しいのでしょうか?
668 : nobodyさん - 2016/04/13(水) 22:33:21.55 ID:???.net (+53,+25,-29)
!あるとエスケープしない
ないとエスケープする
669 : nobodyさん - 2016/04/17(日) 04:02:12.44 ID:???.net (+55,+27,-3)
しかし5.2になって認証周り楽になったよなぁ
670 : nobodyさん - 2016/04/17(日) 10:42:26.29 ID:???.net (+54,+26,-2)
うんうんadminと分けやすくなってほんとうれしいよ
671 : nobodyさん - 2016/04/17(日) 10:46:37.12 ID:???.net (+57,+29,-4)
んなもん、ユーザーIDで分ければいままでだって簡単やん
672 : nobodyさん - 2016/04/17(日) 10:49:10.39 ID:???.net (+52,+29,-1)
別テーブルがうれしいなって。
673 : nobodyさん - 2016/04/17(日) 11:10:03.24 ID:???.net (+52,+29,-2)
喜んでもらえて僕も嬉しいです
674 : nobodyさん - 2016/04/17(日) 11:40:14.73 ID:???.net (+58,+30,-108)
PHPカンファレンス 未だにCakePHPerのがずっと多くて暗澹たる思いになった
海外から完全に取り残されてる感じ
一流なハズの人たちがそれまでの資産もあって Laravelになかなか移りたがらない
日本発なサービスがあんまない、あってもパチンコの市場くったソシャゲばっかりなのは
こういう保守性もあるんじゃないかと思ってしまった
675 : nobodyさん - 2016/04/17(日) 15:45:30.48 ID:???.net (+76,+14,-19)
Cakeに比べてLaravel使うメリットって何なの?
676 : nobodyさん - 2016/04/17(日) 17:46:05.11 ID:???.net (+57,+29,-4)
世界的ですもんね
乗るしかない このビッグウェーブに
677 : nobodyさん - 2016/04/17(日) 18:35:11.82 ID:???.net (+13,-30,-59)
<input type="text" name="name" value="{{ old('name') or $user->name }}">
orで三項演算子になるはずが、なぜか1と表示されてしまう(データベースに存在しているのに)

{{ old('name') ? old('name') : $user->name }}
こっちは正常に動作

教えてドラえもん
678 : nobodyさん - 2016/04/17(日) 18:40:33.91 ID:???.net (+73,+29,-27)
>>675
デザイナーあがりの自称エンジニアでも作れるかと
679 : nobodyさん - 2016/04/17(日) 19:40:35.32 ID:???.net (+39,-29,-36)
>>677
or は論理演算子よ
評価対象の値をそのまま使いたい時は a ?: b
680 : nobodyさん - 2016/04/17(日) 20:34:23.14 ID:???.net (+40,-30,+0)
>>677 は bladeのor記法のことを言ってるんだろう。
{{ isset($name) ? $name : 'Default' }}

{{ $name or 'Default' }}
のように書ける。
逆に言うとorの左辺はisset()に噛ますことのできる変数じゃないとダメ。

storage/framework/views下にbladeが吐き出したphpファイルがあるから見てみるといい。

{{ $name or 'Default' }}
の場合
<?php echo e(isset($name) ? $name : 'Default'); ?>
に変換されるけど
{{ old('name') or 'Default' }}
の場合
<?php echo e(old('name') or 'Default'); ?>
に変換される。
変換されたあとの「or」は >>679 の言う通り論理演算子。
old(’name’)がnullだろうがなんだろうが右辺がtrueなので結果はtrue。 echoで暗黙的にtrueが1に変換されて出力される。

と、いうかoldの第二引数にデフォルト値渡せるから
value="{{ old(’name', $user->name) }}
とするとプリティー。
681 : nobodyさん - 2016/04/17(日) 21:03:51.24 ID:???.net (+64,+29,+0)
>>679
>>680

ありがとうございます、感謝感激です。
682 : nobodyさん - 2016/04/18(月) 03:06:09.20 ID:???.net (+11,-26,-31)
>>678
CakePHPよりLaravelの方が簡単なの?
683 : nobodyさん - 2016/04/19(火) 21:20:10.93 ID:???.net (+57,+29,-6)
フレンドシップ機能を作るのはポリモーフィック一択ですか?
684 : nobodyさん - 2016/04/19(火) 23:44:03.14 ID:???.net (+52,+29,+0)
それほどでもない
686 : nobodyさん - 2016/04/24(日) 12:22:20.03 ID:???.net (+63,+30,-119)
1度覚えた知識でずっと使えるって前提がもう通用しないのかもしれんね。
新しく作るときは、ドキュメントを斜め読みして、勘所を理解する。
そういった知識より、知恵みたいなのが求められるのかも。
その点、Laravelは音速で日本語化してくれる神がいるから心強い。

LaravelでWebサービスを一から作れる人は、そんなの慣れっこかもしれんけど。
初心者向きではないね。
687 : nobodyさん - 2016/04/24(日) 14:15:01.74 ID:???.net (+57,+29,-20)
マルチ認証まちこがれてたんで5.2

そうでないなら手を出すべきじゃない
688 : nobodyさん - 2016/04/25(月) 02:27:51.16 ID:???.net (+57,+29,-30)
laravelはソース読むのが楽しい
オレオレ作ってみたくなる
689 : nobodyさん - 2016/04/27(水) 22:54:45.04 ID:???.net (+2,-29,-34)
一部のバリデーションルールを、追加でなく、置き換えるにはどうしたらいい?

alpha_numやemailが使えないので
690 : nobodyさん - 2016/04/27(水) 23:28:11.89 ID:???.net (-1,-29,-8)
>>689
あ、速攻で自己解決したった

publicじゃなくprotectで定義すりゃいいだけか
691 : nobodyさん - 2016/04/28(木) 00:09:09.79 ID:???.net (+91,+29,-31)
symfonyと比べていいところ、悪いところを教えて欲しいです
どっち使うか迷ってます
692 : nobodyさん - 2016/04/28(木) 00:10:42.54 ID:???.net (-11,-29,+0)
ggrks
693 : nobodyさん - 2016/04/28(木) 05:53:40.76 ID:p+4kmhwo.net (+24,+29,-25)
結局はcomposerでコンポーネント管理してるだけで
別にフレームワーク間の違いなんて気持ち違うぐらいだろ
694 : nobodyさん - 2016/04/29(金) 18:16:53.98 ID:???.net (+57,+29,-25)
日本だと今一盛り上がってないけど、
cakeを勢いで超える日は来るの?
695 : nobodyさん - 2016/04/30(土) 04:34:59.01 ID:???.net (+70,+29,-57)
>>691
機能面で言えばSymfonyなんだろうが、
YMLとアノテーションの重厚長大な作りが疲れるんだよね
手間に合わないというか現実的じゃないというか…
それがLaravelに移行した理由
696 : nobodyさん - 2016/04/30(土) 14:56:23.62 ID:???.net (+9,-30,-258)
resourceコントローラーのupdateメソットでカスタムリクエストを利用しているのですが、
rulesのuniqueにどう除外idを引き渡せば良いのか分かりません

teamsテーブルのチーム名(name)を更新する構造です。

public function rules()
{
return [
'name' => 'required|unique:teams,name,'.$teams.'|max:20',
];
}

putでteams\{$teams}に渡していますので、$teamsを参照できると思ったのですが
どうにもLaravel5では対応していない模様です。

どなたか教えて下さい...
697 : nobodyさん - 2016/05/01(日) 08:29:33.09 ID:???.net (+56,+28,-24)
ルールの定義にRequestで渡した文字列を使いたいということ?
発想の根本が間違ってる気がするが・・・
698 : nobodyさん - 2016/05/01(日) 09:18:58.66 ID:???.net (+8,-30,-201)
>>696

BasseCotrollerでrules定義を置換してるな
unique:user,email,{email},user_id
とか書けるように

↓なの作っておくといろいろ使える

/**
* 文字列中の {id} を$model->id で置換
*/
protected function replaceKey($str, $model)
{
if (preg_match_all('/\{([^}]+)\}/', $str, $matches, PREG_SET_ORDER))
{
foreach($matches as $m)
{
if (isset($model->{$m[1]})
{
$str = str_replace($m[0], $model->{$m[1]}, $str);
}
}
}
return $str;
}

スマホで書いたからタイポしてたらすまそ
699 : nobodyさん - 2016/05/01(日) 10:26:27.75 ID:???.net (+0,-30,-32)
>>698
まちがえた
unique:user,email,{user_id},user_id
700 : nobodyさん - 2016/05/01(日) 12:15:14.70 ID:???.net (+3,-30,-249)
policyクラスでどうしてもfalseしか返ってきません。
policyのcreateメソッドには必ず第二引数の設定が必要なのでしょうか?
ダミーとして第二引数にBook $bookを入れて単純にtrueを返すだけにすれば、認可は成功しました。

//BookPolicy
public function create(User $user)
{
$book_count = $user->books()->count();
if ($book_count <= 3)
{
return true;
}
return false;
}

//book controller
public function create()
{
$this->authorize('create');
return view('book.create');
}


ログイン中のユーザーの本の数をリレーションでcountして、そして3冊以下ならtrueを返したいです。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について