私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ[PHPフレームワーク]Laravel
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
まあしかしここんところはそんな激しい変更も必要ないじゃん
そんでちゃんと使えるようになると万能感ハンパないわ
一人でいきあたりばったりにやってるからDIやテストは活用してないけど
一人でもそのへんきちんとしたほうが本当はいいんだろうな
そんでちゃんと使えるようになると万能感ハンパないわ
一人でいきあたりばったりにやってるからDIやテストは活用してないけど
一人でもそのへんきちんとしたほうが本当はいいんだろうな
いや、5になったときに、ごっそり変わったけど。
でもしばらくはサポートするらしいから、書籍化とか、勉強するなら今だよね
でもしばらくはサポートするらしいから、書籍化とか、勉強するなら今だよね
ディレクトリ構造とかど派手に変わったりして面を食らうけど
ガイドに従うだけであっさり移行できたんで
追従が大変という印象がほとんどないや
>>643
laravel-ide-helper入れても警告だらけになるのは嫌よね
実装上変え辛い部分だろうし、6辺りで対応してもらえるといいな
ガイドに従うだけであっさり移行できたんで
追従が大変という印象がほとんどないや
>>643
laravel-ide-helper入れても警告だらけになるのは嫌よね
実装上変え辛い部分だろうし、6辺りで対応してもらえるといいな
5になったのなんて随分前じゃんw
最近ってのは5.1とか5.2の話ね
最近ってのは5.1とか5.2の話ね
なんていうかララベルって響はいいよな。
なんか、ピクニックみたいな楽しいリズムがあるよ。
コードイグネイターやら、ケークなんて響よりずっと良い。
なんか、ピクニックみたいな楽しいリズムがあるよ。
コードイグネイターやら、ケークなんて響よりずっと良い。
クエリビルダーで質問なんですが、
...->union($users)->where('id','1');
というように書いてunionで結合した後にその結果を
条件で抽出したいのですが、
投げられているSQL文を見るとなぜかwhere('id','1')されてから
union($users)されています。
これはクエリビルダーの仕様なのでしょうか?
...->union($users)->where('id','1');
というように書いてunionで結合した後にその結果を
条件で抽出したいのですが、
投げられているSQL文を見るとなぜかwhere('id','1')されてから
union($users)されています。
これはクエリビルダーの仕様なのでしょうか?
順序は関係ないだろうな
Laravel的なやり方からするとそういう場合
クロージャの中にUnionを入れることになりそうだが
実際selectにクロージャを入れられるかどうかは知らない
Laravel的なやり方からするとそういう場合
クロージャの中にUnionを入れることになりそうだが
実際selectにクロージャを入れられるかどうかは知らない
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されていませんよね?
このへんの詳細がドキュメントなどに載っていなかったので質問させていただきました。
$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されていませんよね?
このへんの詳細がドキュメントなどに載っていなかったので質問させていただきました。
guardedプロパティは初期設定がワイルドカードだからノーガード戦法するなら空配列で上書きかな。まあ存在しないカラムに値を代入されたらアウトなので、これだけだと入力チェック必須だよね。
Modelのブート時とかにDB参照して自動的にカラム名持ってくるのはできなくもないかな?
初期設定の値からして、guardedプロパティをワイルドカード、fillableプロパティを最小限で使うのが暗黙的な推奨。
その上で利用の都度、値を1つずつ代入するか、Model::fillable()メソッドを呼び出してfillableを上書き・複数代入できるフィールド名を明示的に指定するかが安全。
と言っても利便性と安全性はトレードオフなので、
1つのモデルに対して複数の新規登録、更新アクションがない場合はfillableプロパティ直指定で済ませる、といったところ。
たまにfillable指定し忘れてキーってなるのは安全のためと思って我慢
Modelのブート時とかにDB参照して自動的にカラム名持ってくるのはできなくもないかな?
初期設定の値からして、guardedプロパティをワイルドカード、fillableプロパティを最小限で使うのが暗黙的な推奨。
その上で利用の都度、値を1つずつ代入するか、Model::fillable()メソッドを呼び出してfillableを上書き・複数代入できるフィールド名を明示的に指定するかが安全。
と言っても利便性と安全性はトレードオフなので、
1つのモデルに対して複数の新規登録、更新アクションがない場合はfillableプロパティ直指定で済ませる、といったところ。
たまにfillable指定し忘れてキーってなるのは安全のためと思って我慢
ありがとうございます。
とりあえずはfillableでいこうかと思います。
とりあえずはfillableでいこうかと思います。
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が挿入されるようなシステムにしたいです。
$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が挿入されるようなシステムにしたいです。
public static function boot()
{
parent::boot();
self::created(function($user)
{
$profile = new Profile();
$user->profile()->save($profile);
});
}
このコードぶっこんだら出来ました。失礼しました。
{
parent::boot();
self::created(function($user)
{
$profile = new Profile();
$user->profile()->save($profile);
});
}
このコードぶっこんだら出来ました。失礼しました。
そういうのはstorageでやるんだろうなあ
実際のファイルの物理的な場所は
下位のドライバに任せるという発想
実際のファイルの物理的な場所は
下位のドライバに任せるという発想
5.2のmake:authでviewに {!! csrf_field() !!}と書かれていたのですが
結局は!マーク無しと変わらないんですかね?
どちらが正しいのでしょうか?
結局は!マーク無しと変わらないんですかね?
どちらが正しいのでしょうか?
PHPカンファレンス 未だにCakePHPerのがずっと多くて暗澹たる思いになった
海外から完全に取り残されてる感じ
一流なハズの人たちがそれまでの資産もあって Laravelになかなか移りたがらない
日本発なサービスがあんまない、あってもパチンコの市場くったソシャゲばっかりなのは
こういう保守性もあるんじゃないかと思ってしまった
海外から完全に取り残されてる感じ
一流なハズの人たちがそれまでの資産もあって Laravelになかなか移りたがらない
日本発なサービスがあんまない、あってもパチンコの市場くったソシャゲばっかりなのは
こういう保守性もあるんじゃないかと思ってしまった
<input type="text" name="name" value="{{ old('name') or $user->name }}">
orで三項演算子になるはずが、なぜか1と表示されてしまう(データベースに存在しているのに)
{{ old('name') ? old('name') : $user->name }}
こっちは正常に動作
教えてドラえもん
orで三項演算子になるはずが、なぜか1と表示されてしまう(データベースに存在しているのに)
{{ old('name') ? old('name') : $user->name }}
こっちは正常に動作
教えてドラえもん
>>675
デザイナーあがりの自称エンジニアでも作れるかと
デザイナーあがりの自称エンジニアでも作れるかと
>>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) }}
とするとプリティー。
{{ 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) }}
とするとプリティー。
>>678
CakePHPよりLaravelの方が簡単なの?
CakePHPよりLaravelの方が簡単なの?
1度覚えた知識でずっと使えるって前提がもう通用しないのかもしれんね。
新しく作るときは、ドキュメントを斜め読みして、勘所を理解する。
そういった知識より、知恵みたいなのが求められるのかも。
その点、Laravelは音速で日本語化してくれる神がいるから心強い。
LaravelでWebサービスを一から作れる人は、そんなの慣れっこかもしれんけど。
初心者向きではないね。
新しく作るときは、ドキュメントを斜め読みして、勘所を理解する。
そういった知識より、知恵みたいなのが求められるのかも。
その点、Laravelは音速で日本語化してくれる神がいるから心強い。
LaravelでWebサービスを一から作れる人は、そんなの慣れっこかもしれんけど。
初心者向きではないね。
マルチ認証まちこがれてたんで5.2
そうでないなら手を出すべきじゃない
そうでないなら手を出すべきじゃない
一部のバリデーションルールを、追加でなく、置き換えるにはどうしたらいい?
alpha_numやemailが使えないので
alpha_numやemailが使えないので
symfonyと比べていいところ、悪いところを教えて欲しいです
どっち使うか迷ってます
どっち使うか迷ってます
結局はcomposerでコンポーネント管理してるだけで
別にフレームワーク間の違いなんて気持ち違うぐらいだろ
別にフレームワーク間の違いなんて気持ち違うぐらいだろ
日本だと今一盛り上がってないけど、
cakeを勢いで超える日は来るの?
cakeを勢いで超える日は来るの?
resourceコントローラーのupdateメソットでカスタムリクエストを利用しているのですが、
rulesのuniqueにどう除外idを引き渡せば良いのか分かりません
teamsテーブルのチーム名(name)を更新する構造です。
public function rules()
{
return [
'name' => 'required|unique:teams,name,'.$teams.'|max:20',
];
}
putでteams\{$teams}に渡していますので、$teamsを参照できると思ったのですが
どうにもLaravel5では対応していない模様です。
どなたか教えて下さい...
rulesのuniqueにどう除外idを引き渡せば良いのか分かりません
teamsテーブルのチーム名(name)を更新する構造です。
public function rules()
{
return [
'name' => 'required|unique:teams,name,'.$teams.'|max:20',
];
}
putでteams\{$teams}に渡していますので、$teamsを参照できると思ったのですが
どうにもLaravel5では対応していない模様です。
どなたか教えて下さい...
ルールの定義にRequestで渡した文字列を使いたいということ?
発想の根本が間違ってる気がするが・・・
発想の根本が間違ってる気がするが・・・
>>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;
}
スマホで書いたからタイポしてたらすまそ
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;
}
スマホで書いたからタイポしてたらすまそ
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を返したいです。
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 スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- symfony PHPフレームワークpart2 (530) - [60%] - 2022/4/10 22:45
- 【PHP】フレームワーク Akelos (129) - [60%] - 2019/5/9 7:46
- 【PHP】フレームワークPharonスレ (306) - [57%] - 2022/10/10 20:00
- [PHP][フレームワーク]CodeIgniter Part2 (983) - [56%] - 2015/4/7 12:46
- [PHP][フレームワーク]CodeIgniterスレ (983) - [53%] - 2011/3/5 23:17 ○
- 【PHP】フレームワークMapleに舌鼓 (470) - [48%] - 2017/12/31 9:31
- 【PHP】PHPフレームワーク総合スレ15 (989) - [42%] - 2013/9/27 6:00 △
トップメニューへ / →のくす牧場書庫について