Laravel
ウェブ職人のためのPHPフレームワーク
本家
https://laravel.com/
git
https://github.com/laravel
動画チュートリアル(英語)
https://laracasts.com/
※前スレ
【PHP】Laravel【フレームワーク】 Part.9
https://medaka.5ch.net/test/read.cgi/php/1636499781/
【PHP】Laravel【フレームワーク】 Part.10
https://medaka.5ch.net/test/read.cgi/php/1647325775/
【PHP】Laravel【フレームワーク】 Part.11
https://medaka.5ch.net/test/read.cgi/php/1658553311/
【PHP】Laravel【フレームワーク】 Part.12
■ このスレッドは過去ログ倉庫に格納されています
2022/08/31(水) 18:53:51.77ID:???
447nobodyさん
2023/04/09(日) 12:06:15.20ID:??? >>446
オブザーバーで、save/update後に登録数をcountするようにします。
単純な方法ですが、既存のCounterCacheも同じような仕組みなので
このやり方がベターなんだと思います。
オブザーバーで、save/update後に登録数をcountするようにします。
単純な方法ですが、既存のCounterCacheも同じような仕組みなので
このやり方がベターなんだと思います。
448nobodyさん
2023/04/10(月) 12:32:43.55ID:??? phpstormって何でlaravelのサポート削除したの?
449nobodyさん
2023/04/10(月) 17:09:26.30ID:??? マイグレーションのintegerにZEROFILLを指定したい場合、どう書けばいいのでしょうか?
450nobodyさん
2023/04/10(月) 19:58:37.10ID:??? >>449
無理やりやればできるけど基本的にはやらない方がいい
理由はMySQLの機能なのでDBをpostgressとか他のストレージエンジンに変更した場合
マイグレーションでエラーになるかその機能が付与されない
実現する場合はモデルでその機能を実装する
無理やりやればできるけど基本的にはやらない方がいい
理由はMySQLの機能なのでDBをpostgressとか他のストレージエンジンに変更した場合
マイグレーションでエラーになるかその機能が付与されない
実現する場合はモデルでその機能を実装する
452nobodyさん
2023/04/11(火) 12:12:43.05ID:??? zerofillでググったらmysql8.0からintのzerofillが非推奨になってるみたいだね
453nobodyさん
2023/04/11(火) 12:33:45.57ID:??? 大体はアプリでやる方がキレイだしね
454nobodyさん
2023/04/11(火) 17:41:19.56ID:??? 例えば外部APIやローカルファイルがデータソースだった場合で、Modelの機能だけを使いたい場合ってどうしてます?
使いたいのはキャスタ、アクセサ、ミューテタ、状態管理辺りの機能
良い方法が無くて自作したんだけどベストプラクティスがあればそっちに変えたいんです
使いたいのはキャスタ、アクセサ、ミューテタ、状態管理辺りの機能
良い方法が無くて自作したんだけどベストプラクティスがあればそっちに変えたいんです
455nobodyさん
2023/04/11(火) 18:25:48.79ID:??? それはLaravelのいうところのModelにはならん気がするけど、それをどこに置くかってこと?
456nobodyさん
2023/04/11(火) 18:38:57.42ID:??? 機能としてはDTOが一番近しいんだけど
Modelと同じ使用感でattributes、fillable、hiddenとか設定できたり
既に資産として存在するカスタムキャスタを使ったりしたい
Modelと同じ使用感でattributes、fillable、hiddenとか設定できたり
既に資産として存在するカスタムキャスタを使ったりしたい
457nobodyさん
2023/04/14(金) 01:35:30.50ID:O955HWXC 社内データを元に原価予測等の傾向分析を含むWEBサイトを開発するとしたら
データ分析部分はPythonでやらせるとして、
WEBはPHPかLaravelで分析ロジックはexe化したpythonプログラムをPHPのexec関数なんかで呼び出すか、
またはWEBをDjangoで分析ロジックも含めてコーディングするか、
あたりの2案その他を考えていますがどっちが良いか悩みます
開発やメンテ容易性、レスポンスなんかで考えるとどれになるのかなと
AI分析を絡めたWEBサイトの案件は多くなりそうですし、フリーのフレームワークで安価に構築したい要求もありますしね
データ分析部分はPythonでやらせるとして、
WEBはPHPかLaravelで分析ロジックはexe化したpythonプログラムをPHPのexec関数なんかで呼び出すか、
またはWEBをDjangoで分析ロジックも含めてコーディングするか、
あたりの2案その他を考えていますがどっちが良いか悩みます
開発やメンテ容易性、レスポンスなんかで考えるとどれになるのかなと
AI分析を絡めたWEBサイトの案件は多くなりそうですし、フリーのフレームワークで安価に構築したい要求もありますしね
458nobodyさん
2023/04/14(金) 01:38:40.97ID:??? ちんちん!シユシュッシュッ!
459nobodyさん
2023/04/14(金) 07:48:46.99ID:??? データ分析時間がどのくらいか知らないけど、時間かかるようならバッチ処理したデータ分析結果をWEBで見るやり方かなあ
460nobodyさん
2023/04/14(金) 08:48:59.56ID:??? フォームを検索するときに、コントローラで
$post = Post::query();
if ($request->query('name')) {
$post->where('name', $request->query('name'));
}
$result = $post->get();
みたいな書き方をしているのですが、
フォームの項目が増えるほどIFも増えて冗長化します。
良いライブラリとかコンポーザのパッケージはないでしょうか?
$post = Post::query();
if ($request->query('name')) {
$post->where('name', $request->query('name'));
}
$result = $post->get();
みたいな書き方をしているのですが、
フォームの項目が増えるほどIFも増えて冗長化します。
良いライブラリとかコンポーザのパッケージはないでしょうか?
461nobodyさん
2023/04/14(金) 12:57:11.00ID:??? >>460
一番雑で簡単な返答はFormRequestでバリデーション入れて
Post::query()->where($request->validated())->get()
なんだけどこれは実践だとクソの役にも立たないのでやっちゃダメ
自分の実装を簡単に書くと例えば下記の方法
ModelにScope作る
public function scopeSearch(Builder $builder,array $params ):Builder
{
$builder = $this->scopeSearchName($builder,data_get($params,'name'));
return $builder ;
}
public function scopeSearchName(Builder $builder, $name ):Builder
{
if( blank($name) ) {
return $builder ;
}
return $builder->where('name',$name ) ;
}
コントローラーで呼び出す
Post::search($request->validated())->get()
個別に使うなら
Post::searchName($request->query('name'))->get()
一番雑で簡単な返答はFormRequestでバリデーション入れて
Post::query()->where($request->validated())->get()
なんだけどこれは実践だとクソの役にも立たないのでやっちゃダメ
自分の実装を簡単に書くと例えば下記の方法
ModelにScope作る
public function scopeSearch(Builder $builder,array $params ):Builder
{
$builder = $this->scopeSearchName($builder,data_get($params,'name'));
return $builder ;
}
public function scopeSearchName(Builder $builder, $name ):Builder
{
if( blank($name) ) {
return $builder ;
}
return $builder->where('name',$name ) ;
}
コントローラーで呼び出す
Post::search($request->validated())->get()
個別に使うなら
Post::searchName($request->query('name'))->get()
462nobodyさん
2023/04/14(金) 13:38:42.25ID:??? >>461
モデルごとにこれを書くなら、IFで書く場合と大差ないことないですか?
あと、$request->validated()ってバリデーション通すのはなぜですか?
検索でバリデーションをすると、requiredでひっかかりそうですが
モデルごとにこれを書くなら、IFで書く場合と大差ないことないですか?
あと、$request->validated()ってバリデーション通すのはなぜですか?
検索でバリデーションをすると、requiredでひっかかりそうですが
463nobodyさん
2023/04/14(金) 14:51:00.39ID:??? >>462
> モデルごとにこれを書くなら、IFで書く場合と大差ないことないですか?
「IFで書く場合」ではなく「コントローラーに書く場合」として回答すると
大差ないか?という事であればベストプラクティスとバッドプラクティスの差がある
コントローラは単一の責任だけを持たないといけないのでモデルの検索ロジックがコントローラーに書かれていることがおかしい
以下ChatGPTの回答
検索ロジックをコントローラに書いてしまうと、コントローラが複雑になり、保守性が低下する可能性があります。
以下に詳しく説明します。
1. コードの可読性が低下する
コントローラに検索ロジックを含めると、コントローラの役割が複雑になり、コントローラのメソッドが大きくなり、可読性が低下する可能性があります。
コントローラの役割が明確でなくなるため、コントローラの修正や保守が困難になる可能性があります。
2. テストが困難になる
コントローラに検索ロジックを含めると、コントローラのテストが困難になる可能性があります。
コントローラに含まれる検索ロジックは、外部の依存関係を持つ可能性があり、依存関係をモック化する必要があるため、テストコードが複雑になる可能性があります。
3. 再利用性が低下する
コントローラに検索ロジックを含めると、再利用性が低下する可能性があります。
コントローラは、Webアプリケーションの特定の機能を担当するために設計されており、その機能に特化した責任を持つように設計されるべきです。
検索ロジックがコントローラに含まれると、コントローラが特定の機能に依存してしまうため、他の機能で再利用することが困難になる可能性があります。
以上の理由から、検索ロジックをコントローラに含めず、別の場所に分離することをお勧めします。
例えば、リポジトリパターンを使用して、データベースからデータを検索する責任を持つクラスを作成し、コントローラからはそのクラスを呼び出すようにすることができます。
これにより、コントローラは単一の責任を持ち、コードの保守性が向上し、テストの容易性や再利用性が高まります。
> モデルごとにこれを書くなら、IFで書く場合と大差ないことないですか?
「IFで書く場合」ではなく「コントローラーに書く場合」として回答すると
大差ないか?という事であればベストプラクティスとバッドプラクティスの差がある
コントローラは単一の責任だけを持たないといけないのでモデルの検索ロジックがコントローラーに書かれていることがおかしい
以下ChatGPTの回答
検索ロジックをコントローラに書いてしまうと、コントローラが複雑になり、保守性が低下する可能性があります。
以下に詳しく説明します。
1. コードの可読性が低下する
コントローラに検索ロジックを含めると、コントローラの役割が複雑になり、コントローラのメソッドが大きくなり、可読性が低下する可能性があります。
コントローラの役割が明確でなくなるため、コントローラの修正や保守が困難になる可能性があります。
2. テストが困難になる
コントローラに検索ロジックを含めると、コントローラのテストが困難になる可能性があります。
コントローラに含まれる検索ロジックは、外部の依存関係を持つ可能性があり、依存関係をモック化する必要があるため、テストコードが複雑になる可能性があります。
3. 再利用性が低下する
コントローラに検索ロジックを含めると、再利用性が低下する可能性があります。
コントローラは、Webアプリケーションの特定の機能を担当するために設計されており、その機能に特化した責任を持つように設計されるべきです。
検索ロジックがコントローラに含まれると、コントローラが特定の機能に依存してしまうため、他の機能で再利用することが困難になる可能性があります。
以上の理由から、検索ロジックをコントローラに含めず、別の場所に分離することをお勧めします。
例えば、リポジトリパターンを使用して、データベースからデータを検索する責任を持つクラスを作成し、コントローラからはそのクラスを呼び出すようにすることができます。
これにより、コントローラは単一の責任を持ち、コードの保守性が向上し、テストの容易性や再利用性が高まります。
464nobodyさん
2023/04/14(金) 15:04:32.87ID:??? >>462
続き
> あと、$request->validated()ってバリデーション通すのはなぜですか?
入力値の操作ができるので入力値に関する責任をコントローラーから切り離せる
https://readouble.com/laravel/9.x/ja/validation.html#preparing-input-for-validation
要するに検索項目に入れたくないパラメータやら値を省くことができる
> 検索でバリデーションをすると、requiredでひっかかりそうですが
nullableを使えばよい
続き
> あと、$request->validated()ってバリデーション通すのはなぜですか?
入力値の操作ができるので入力値に関する責任をコントローラーから切り離せる
https://readouble.com/laravel/9.x/ja/validation.html#preparing-input-for-validation
要するに検索項目に入れたくないパラメータやら値を省くことができる
> 検索でバリデーションをすると、requiredでひっかかりそうですが
nullableを使えばよい
465nobodyさん
2023/04/14(金) 15:15:47.82ID:??? >>462
一応ChatGPTの回答
検索リクエストの値をバリデーションする理由は、以下のようなものがあります。
1. 検索クエリの安全性を確保するため
検索クエリに含まれる値が適切にバリデーションされていない場合、悪意のあるユーザーによってSQLインジェクション攻撃などのセキュリティ上の問題が引き起こされる可能性があります。
バリデーションを行うことで、入力された値が予想されるフォーマットに一致しているかどうかを確認することができ、攻撃を防ぐことができます。
2. 検索結果の品質を向上するため
検索クエリに含まれる値が適切にバリデーションされていない場合、意図しない検索結果が表示される可能性があります。
たとえば、数字のみを入力することが想定されているフィールドに文字列が入力された場合、検索結果に誤りが生じる可能性があります。
バリデーションを行うことで、検索クエリが適切に構成されているかどうかを確認することができ、正確な検索結果を得ることができます。
3. UXを向上するため
検索リクエストのバリデーションにより、ユーザーが誤ったクエリを送信してしまった場合にエラーメッセージを表示し、適切な入力を促すことができます。
これにより、ユーザーのUXが向上し、検索エラーを減らすことができます。
以上のような理由から、検索リクエストの値をバリデーションすることが重要となります。
一応ChatGPTの回答
検索リクエストの値をバリデーションする理由は、以下のようなものがあります。
1. 検索クエリの安全性を確保するため
検索クエリに含まれる値が適切にバリデーションされていない場合、悪意のあるユーザーによってSQLインジェクション攻撃などのセキュリティ上の問題が引き起こされる可能性があります。
バリデーションを行うことで、入力された値が予想されるフォーマットに一致しているかどうかを確認することができ、攻撃を防ぐことができます。
2. 検索結果の品質を向上するため
検索クエリに含まれる値が適切にバリデーションされていない場合、意図しない検索結果が表示される可能性があります。
たとえば、数字のみを入力することが想定されているフィールドに文字列が入力された場合、検索結果に誤りが生じる可能性があります。
バリデーションを行うことで、検索クエリが適切に構成されているかどうかを確認することができ、正確な検索結果を得ることができます。
3. UXを向上するため
検索リクエストのバリデーションにより、ユーザーが誤ったクエリを送信してしまった場合にエラーメッセージを表示し、適切な入力を促すことができます。
これにより、ユーザーのUXが向上し、検索エラーを減らすことができます。
以上のような理由から、検索リクエストの値をバリデーションすることが重要となります。
466460
2023/04/14(金) 16:32:57.48ID:??? 確かにコントローラに検索ロジックを書くと複雑になりますね。
管理画面用のコントローラと公開画面用のコントローラで
似たようなソースを書いてるので余計に無駄です。
検索バリデーションについては思うところもありますが、
とりあえずベストプラティクスに近づけたいので
出来る範囲で対応したいと思います。
管理画面用のコントローラと公開画面用のコントローラで
似たようなソースを書いてるので余計に無駄です。
検索バリデーションについては思うところもありますが、
とりあえずベストプラティクスに近づけたいので
出来る範囲で対応したいと思います。
467460
2023/04/14(金) 17:27:24.43ID:??? すみません、スコープ作った場合でも、
public function scopeSearchName($query, $name){
if ($name !== null) {
return $query->where('name', $name);
}
}
みたいにIFで判定するのは仕方ないんですかね?
また、検索項目が複数ある場合、
User::searhName($request->query('name'))->searhType($request->query('type'))->searhBirth($request->query('birth'))
みたいにどんどん長くなるのも仕方ないんですかね?
public function scopeSearchName($query, $name){
if ($name !== null) {
return $query->where('name', $name);
}
}
みたいにIFで判定するのは仕方ないんですかね?
また、検索項目が複数ある場合、
User::searhName($request->query('name'))->searhType($request->query('type'))->searhBirth($request->query('birth'))
みたいにどんどん長くなるのも仕方ないんですかね?
468nobodyさん
2023/04/14(金) 17:53:45.98ID:??? >>467
> IFで判定するのは仕方ないんですかね?
これって値が空の場合検索条件追加しないでクエリビルダを戻すって事やってるから
値の有無関係なく検索する必要があるなら(nullを検索したい場合には)条件分岐しなくとも良い
というより何をどう検索したいかによってScope内の処理は変わるから何とも言えない
> 検索項目が複数ある場合
> どんどん長くなるのも仕方ないんですかね?
コントローラー内からシンプルに呼び出せる様にscopeSearchを書いたつもりなんだけど
public function scopeSearch(Builder $builder,array $params ):Builder
{
$builder = $this->scopeSearchName($builder,data_get($params,'name'));
$builder = $this->scopeSearchType($builder,data_get($params,'type'));
$builder = $this->scopeSearchBirth($builder,data_get($params,'birth'));
return $builder ;
}
> IFで判定するのは仕方ないんですかね?
これって値が空の場合検索条件追加しないでクエリビルダを戻すって事やってるから
値の有無関係なく検索する必要があるなら(nullを検索したい場合には)条件分岐しなくとも良い
というより何をどう検索したいかによってScope内の処理は変わるから何とも言えない
> 検索項目が複数ある場合
> どんどん長くなるのも仕方ないんですかね?
コントローラー内からシンプルに呼び出せる様にscopeSearchを書いたつもりなんだけど
public function scopeSearch(Builder $builder,array $params ):Builder
{
$builder = $this->scopeSearchName($builder,data_get($params,'name'));
$builder = $this->scopeSearchType($builder,data_get($params,'type'));
$builder = $this->scopeSearchBirth($builder,data_get($params,'birth'));
return $builder ;
}
469460
2023/04/14(金) 17:58:44.88ID:??? とりあえずスコープの勉強が足りないことはわかりました
色々と試行錯誤してやってみます。ありがとうございました
色々と試行錯誤してやってみます。ありがとうございました
470nobodyさん
2023/04/16(日) 02:39:49.01ID:??? クエリビルダでwhen()があるので
if()で条件判定して追加するよりはスマートな気がする
データが入ってないと検索条件が増えないようなものには俺の場合はwhen()で対処している
良くある検索条件が複数あって未入力はパスのようなやつね
if()で条件判定して追加するよりはスマートな気がする
データが入ってないと検索条件が増えないようなものには俺の場合はwhen()で対処している
良くある検索条件が複数あって未入力はパスのようなやつね
471460
2023/04/16(日) 09:50:36.55ID:???472nobodyさん
2023/04/21(金) 18:06:14.14ID:eZ0hTZy/ APIサーバーとしてLaravelを使用してるけど、Laravel Sanctum良いね
認証処理が一瞬で構築できる
認証処理が一瞬で構築できる
473nobodyさん
2023/04/23(日) 18:55:40.49ID:??? オブジェクトのことよくわかってなかったんだが、
$user = User::find(1);
$old_user = $user;
$user->update($request->all());
ってすると、$old_userの中身が更新済みの値に変わるんだな。
$user = User::find(1);
$old_user = $user;
$user->update($request->all());
ってすると、$old_userの中身が更新済みの値に変わるんだな。
475nobodyさん
2023/04/23(日) 22:59:19.23ID:CuNCCdp5 ミュータブル、イミュータブルという言葉で調べてみると良いかも
476nobodyさん
2023/04/23(日) 23:14:34.79ID:???477nobodyさん
2023/04/24(月) 02:02:01.12ID:??? というかオブジェクトだからとかあまり関係ない気はするけど、大丈夫ならいっか
478nobodyさん
2023/04/26(水) 07:28:13.95ID:??? 変数の命名規則ってどうしてる?
キャメルケースにしろという説明もあれば
スネークケースの方がいいというのもあるけど。
自分はメソッドと区別するためにスネークケースにしてる
キャメルケースにしろという説明もあれば
スネークケースの方がいいというのもあるけど。
自分はメソッドと区別するためにスネークケースにしてる
481nobodyさん
2023/04/26(水) 10:58:43.96ID:???482nobodyさん
2023/04/26(水) 11:06:07.79ID:??? >>481
公式もキャメルケースなんですよね。
ビューでforeachするときに
@foreach ($userProfiles as $profile)
$profile->name
@endforeach
みたいに書くのはどうかと思った(テーブル名はuer_profles、モデルはUserProfileなのに)
のですが、PSRや公式に従うならキャメルケースの方が良いですかね
公式もキャメルケースなんですよね。
ビューでforeachするときに
@foreach ($userProfiles as $profile)
$profile->name
@endforeach
みたいに書くのはどうかと思った(テーブル名はuer_profles、モデルはUserProfileなのに)
のですが、PSRや公式に従うならキャメルケースの方が良いですかね
483nobodyさん
2023/04/26(水) 11:13:39.59ID:??? あと、テーブルのカラムはfirst_nameみたいにスネークケースにするのに、
変数はキャメルケースだから、findの値を比較するときに
($firstName === $user->first_name)
となるので、おかしくないか?とも思いました。
変数はキャメルケースだから、findの値を比較するときに
($firstName === $user->first_name)
となるので、おかしくないか?とも思いました。
484nobodyさん
2023/04/26(水) 14:17:15.08ID:O+wKXsaI >>482
特にそれで違和感ないけどね
特にそれで違和感ないけどね
485nobodyさん
2023/04/26(水) 14:28:06.87ID:??? カラム名ってわかるからまあいいかな、って感じ
逆に他に変えるとその方が色々おかしくなりそう
逆に他に変えるとその方が色々おかしくなりそう
486nobodyさん
2023/04/26(水) 21:33:35.41ID:??? $user = User::with(['posts'])->first();
$user_id = $user->id;
ってコントローラーでしたら駄目なんですか?
vscodeさんがUndefined propertyってエラー出してくるんですが
$user_id = $user->id;
ってコントローラーでしたら駄目なんですか?
vscodeさんがUndefined propertyってエラー出してくるんですが
487nobodyさん
2023/04/26(水) 21:53:09.30ID:??? >>486
> vscodeさんがUndefined propertyってエラー出してくるんですが
おそらくエラーじゃなくて警告だと思うけど
Userモデルにプロパティが設定されてないって言ってる
出ない様にするにはPHPDocの書式で必要なプロパティを書いてあげればいいはず
例えばこんな感じ
/**
* Class User
*
* @property int|null id
*
* @package App\Models
*/
class User extends Model
> vscodeさんがUndefined propertyってエラー出してくるんですが
おそらくエラーじゃなくて警告だと思うけど
Userモデルにプロパティが設定されてないって言ってる
出ない様にするにはPHPDocの書式で必要なプロパティを書いてあげればいいはず
例えばこんな感じ
/**
* Class User
*
* @property int|null id
*
* @package App\Models
*/
class User extends Model
489nobodyさん
2023/04/26(水) 22:29:32.19ID:??? >>487-488
レコードの有り無しはともかくとして、
リレーションのwithをつけるかつけないかで警告が出ます
UserモデルもPostモデルも存在するのに
他にも記述は合ってる(値は取得できる)のに警告が出るし、
vscodeさんって結構厳しいんですね
レコードの有り無しはともかくとして、
リレーションのwithをつけるかつけないかで警告が出ます
UserモデルもPostモデルも存在するのに
他にも記述は合ってる(値は取得できる)のに警告が出るし、
vscodeさんって結構厳しいんですね
490nobodyさん
2023/04/26(水) 22:58:30.62ID:??? >>489
vscodeが厳しいんじゃなくてあなたが緩いのでは無いかと
もっと型と変数の状態を意識するとよいと思うよ
> 他にも記述は合ってる(値は取得できる)のに警告が出るし、
値は取得できる「可能性がある」なので警告がでるんです
100%値が取得可能な状態であれば警告は出ないはず
これは値チェックとか例外処理で回避できる
vscodeが厳しいんじゃなくてあなたが緩いのでは無いかと
もっと型と変数の状態を意識するとよいと思うよ
> 他にも記述は合ってる(値は取得できる)のに警告が出るし、
値は取得できる「可能性がある」なので警告がでるんです
100%値が取得可能な状態であれば警告は出ないはず
これは値チェックとか例外処理で回避できる
491nobodyさん
2023/04/27(木) 11:40:47.66ID:??? >>490
phpstormだと100%値取得可能ならでないけどvscodeだと100%値が取得可能な状態であっても警告でるよ。
phpstormだと100%値取得可能ならでないけどvscodeだと100%値が取得可能な状態であっても警告でるよ。
493nobodyさん
2023/04/27(木) 15:34:18.89ID:??? それよりも一つだけなのにwith()に配列で渡すところが気持ちが悪いw
495nobodyさん
2023/04/29(土) 20:14:23.37ID:??? JavaScriptでタイマー処理をしています。
指定した秒数(ここでは10秒)経過したらタイマーを停止する様にしていますが
タイマーが止まりません。助けてください、、、
$(document).ready(function(){
$("#id_div_test").click(function () {
setInterval(TestFunction , 1000);
});
});
var i_current_second = -1;
function TestFunction()
{
i_current_second++;
if( i_current_second == 10)
{
clearInterval(TestFunction);
}
}
指定した秒数(ここでは10秒)経過したらタイマーを停止する様にしていますが
タイマーが止まりません。助けてください、、、
$(document).ready(function(){
$("#id_div_test").click(function () {
setInterval(TestFunction , 1000);
});
});
var i_current_second = -1;
function TestFunction()
{
i_current_second++;
if( i_current_second == 10)
{
clearInterval(TestFunction);
}
}
496nobodyさん
2023/04/29(土) 20:22:13.26ID:???498nobodyさん
2023/04/29(土) 21:22:06.46ID:??? そもそもの話上記の場合だと
var id = setInterval…
clearInterval(id)
ってやらんと止まらんけど
基本setIntervelでやらんといけないケースって殆どないと思う
var id = setInterval…
clearInterval(id)
ってやらんと止まらんけど
基本setIntervelでやらんといけないケースって殆どないと思う
499nobodyさん
2023/04/29(土) 22:01:35.72ID:???501nobodyさん
2023/04/30(日) 12:00:25.29ID:??? 便乗質問ですが、Ajaxの処理するときって
バックエンドは普通にコントローラーに書いてもいいですか?
それとも専用のファイルに書くのでしょうか?
たとえば、タイマーで指定時間になる毎にDBからデータを取得して
結果をビューに表示するような処理です。
バックエンドは普通にコントローラーに書いてもいいですか?
それとも専用のファイルに書くのでしょうか?
たとえば、タイマーで指定時間になる毎にDBからデータを取得して
結果をビューに表示するような処理です。
502nobodyさん
2023/04/30(日) 12:25:15.80ID:gJ/V2xTa503nobodyさん
2023/04/30(日) 17:04:22.03ID:??? 同じページのajax(API)なら同じコントローラに書いた方が分かりやすいだろうね
ルートはwebページの方はroutes/web.phpにAPIはroutes/api.phpに分けて書く事はあるかな
(ただしapiの方に書くとdomain/api/指定ルートになる)
まぁ、この辺は個人なら好きにやればいいし
プロジェクトならルールに従うしかないかと
ルートはwebページの方はroutes/web.phpにAPIはroutes/api.phpに分けて書く事はあるかな
(ただしapiの方に書くとdomain/api/指定ルートになる)
まぁ、この辺は個人なら好きにやればいいし
プロジェクトならルールに従うしかないかと
504nobodyさん
2023/04/30(日) 17:38:15.02ID:??? 「好きにすればいい」はその通りなんだけど、統一はしたいよね
AのコントローラではRequestクラスを作り、
Bのコントローラでは作らないという設計はどうなのかと思うし
AのコントローラではRequestクラスを作り、
Bのコントローラでは作らないという設計はどうなのかと思うし
505nobodyさん
2023/04/30(日) 23:01:42.99ID:??? FormRequestってblade使っているときは良く使ってたけど最近全く使ってないな
やる事はあんまり変わらないけど、バリデーションはLaravelのやり方でするのだがそれらは自前で呼ぶ感じかな
レスポンスは仕様が決まっているのでそれに合わせてエラー時の処理を行う感じが多い
Vueとか使ってたら99%はAPIのリクエストだからHTTPのformの処理とは違うしなぁ
やる事はあんまり変わらないけど、バリデーションはLaravelのやり方でするのだがそれらは自前で呼ぶ感じかな
レスポンスは仕様が決まっているのでそれに合わせてエラー時の処理を行う感じが多い
Vueとか使ってたら99%はAPIのリクエストだからHTTPのformの処理とは違うしなぁ
506nobodyさん
2023/04/30(日) 23:33:54.16ID:??? phpのテンプレートエンジンのなかでもbladeはダントツで使いやすいよね
507nobodyさん
2023/05/01(月) 01:19:29.13ID:??? vueでもFormRequest使ってるわ
508nobodyさん
2023/05/01(月) 08:08:21.84ID:???509nobodyさん
2023/05/01(月) 13:26:00.42ID:??? FW使うより自前でゴリゴリ書いた方が開発効率が凄くいい。
510nobodyさん
2023/05/01(月) 14:12:27.82ID:??? 車輪の再発明ですか
511nobodyさん
2023/05/02(火) 12:51:23.84ID:??? 欠番おじさんに朗報 次期バージョンに欠番の再利用機能が入る模様
512nobodyさん
2023/05/02(火) 13:32:22.99ID:??? どういう機能?
513nobodyさん
2023/05/02(火) 14:44:38.54ID:??? 欠番って使うデータベースの仕様次第なんじゃないの?
514nobodyさん
2023/05/02(火) 21:53:42.02ID:??? そんなバグの温床になりそうな機能実装されても常時OFFだろうけどね
515nobodyさん
2023/05/03(水) 10:18:16.40ID:??? FWなんて使わない方が生産性・保守性が高い。
516nobodyさん
2023/05/03(水) 10:21:44.12ID:??? Laravelで何作った良いかわからなくなってきた
AIに何が需要あるか聞いても明確に答えてくれない
AIに何が需要あるか聞いても明確に答えてくれない
518nobodyさん
2023/05/03(水) 15:14:42.60ID:??? 会員管理系のシステムを工数かけずに作るのには向いてるかなぁ
抽象化がかなり進んでるから、似たようなシステムを量産するときにも重宝する
抽象化がかなり進んでるから、似たようなシステムを量産するときにも重宝する
519nobodyさん
2023/05/04(木) 09:03:31.30ID:??? 会員システムなんて他にたくさんあるんだからわざわざ作る意味がない
520nobodyさん
2023/05/04(木) 09:52:22.62ID:???521nobodyさん
2023/05/04(木) 10:35:14.78ID:??? Laravelが会員管理システムに向いてないって思ってるやつがいるって知ってビビってる
522nobodyさん
2023/05/04(木) 14:07:08.61ID:??? 日本語がわからん奴が勝手にビビってるだけ
523nobodyさん
2023/05/04(木) 14:31:51.51ID:??? Laravelはログイン画面とかTailwindが標準だけどあれ使いづらいよな
クラス地獄になって大変
クラス地獄になって大変
525nobodyさん
2023/05/06(土) 11:15:46.61ID:??? そもそも Cake使えよ。なんでこんなマイナーなフレームワーク使うの?
というか昔もっとマイナーな kohana とかいうFWを使ってるクソプロジェクトがあった
というか昔もっとマイナーな kohana とかいうFWを使ってるクソプロジェクトがあった
526nobodyさん
2023/05/06(土) 11:31:57.01ID:??? >>525
元々Laravel使ってたのから案件でCake入ったけどCakeFW設計悪すぎテンプレートエンジンとかゴミじゃん
元々Laravel使ってたのから案件でCake入ったけどCakeFW設計悪すぎテンプレートエンジンとかゴミじゃん
527nobodyさん
2023/05/06(土) 17:11:20.29ID:??? 本当に有能だったら Laravelのシェアがもっと広がってるdろ
529nobodyさん
2023/05/06(土) 18:15:59.68ID:??? てか2023版のPHPフレームワークランキングみたらどこも1位Laravelになってんじゃん
530nobodyさん
2023/05/06(土) 18:23:39.06ID:??? ちなGoogle Trend
https://i.imgur.com/yMIFaXJ.png
https://i.imgur.com/yMIFaXJ.png
531nobodyさん
2023/05/06(土) 18:25:27.44ID:??? PHP自体が下火だからな。
PHPユーザー分母が減って、laravelユーザー変わらずで、相対的にシェアが上がって見えてるだけな気が。
PHPユーザー分母が減って、laravelユーザー変わらずで、相対的にシェアが上がって見えてるだけな気が。
533nobodyさん
2023/05/06(土) 19:51:45.62ID:q5EMM9V/ 少なくとも今からCakeはないわなw
534nobodyさん
2023/05/06(土) 20:05:11.36ID:??? CAKEが一番
535nobodyさん
2023/05/06(土) 23:56:27.89ID:???536nobodyさん
2023/05/07(日) 00:17:00.54ID:??? パフォーマンスの話するならGoとかJavaじゃない?
537nobodyさん
2023/05/07(日) 01:01:33.93ID:deCy6qSu Go一択でしょ
538nobodyさん
2023/05/07(日) 07:37:00.11ID:??? GoってLaravelみたいなフレームワークある?
539nobodyさん
2023/05/07(日) 07:46:31.37ID:??? ruby男君がきているようだな
540nobodyさん
2023/05/07(日) 10:45:57.32ID:??? GoってWebで使うんだ。全然知らなんだ
541nobodyさん
2023/05/07(日) 11:01:28.57ID:??? マイクロサービスでよく聞く感じだねぇ
モノリシックなLaravelとは対局にある感じ
モノリシックなLaravelとは対局にある感じ
542nobodyさん
2023/05/07(日) 11:46:01.58ID:??? 2年くらい前から結構Webで需要上がってるって聞いたなGo
543nobodyさん
2023/05/07(日) 12:14:32.36ID:??? 興味はあるけど今更他の言語は学びたくない
544nobodyさん
2023/05/07(日) 13:13:24.89ID:??? Goって俗にいうレンタルサーバーでも動くの?
それともAWSとかコンテナ型のサーバじゃないと無理?
それともAWSとかコンテナ型のサーバじゃないと無理?
545nobodyさん
2023/05/07(日) 13:28:13.32ID:??? LaravelやっててVPSでもなくレンタルサーバーなんて使ってんの?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相「ご高齢の方に働いていただく」投稿が炎上 G7欠席騒動の最中...過去の「働いて働いて」も蒸し返される [少考さん★]
- グッドスマイルカンパニー 不正アクセスで顧客のクレジットカード情報が漏洩か [Hitzeschleier★]
- 「ぼくが話してもないことを書かれた」…高校生の指摘で望月衣塑子氏が朝日新書の記述訂正 [少考さん★]
- 福島瑞穂氏「男ばかりで決めるな」衆院31減で反対集会 [少考さん★]
- 【視聴率】ソフトバンク日本一 日本シリーズ第4戦は9・2% 地元九州で驚異の31・7% 瞬間最高44・0% [冬月記者★]
- GMO熊谷社長 自身のSNSに「犯人の特定につながる有力情報入手」 [Hitzeschleier★]
- 「ネトウヨ」って日本の中だけで暴れてりゃいいのに、全世界の人とSNSで戦ってるのマジ害悪だよな。 [592058334]
- 【悲報】サンリオ、VIVANTとのコラボ中止wwwwwwwwwwwwwwwwwww [398059782]
- 東京チカラめし食堂💪(・o・💢🍬)🏰
- Xリベラルたち、アカウント名に「🍊🇯🇵🌸」をつけ始める。右派優遇アルゴリズムを逆手に取る [732289945]
- 高市ミサイル [268244553]
- 【悲報】グッスマ 顧客のクレカ番号、名義人、セキュリティコードと有効期限が流出 [517459952]