問題タブ [mutators]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
54 参照

c# - 検証を使用して Date クラスを設定する適切な方法

次のようなクラスがあります。

setDay()機能していない部分は、メソッド内で私の一日を検証しています。DateTime.DaysInMonth(year, month)(このメソッドは、うるう年と 2 月を考慮して、特定の年の特定の月の日数をチェックします) は、ユーザー/アプリケーション データが通過する前に、既定のコンストラクタ値 0 から呼び出して、1 ~ 12. DateTime を使用してすべてを検証することはできません。ユーザーが日または月に 0 の値を入力できるようにアプリケーションが設定されているため、最終的な形式で日または月が出力されないからです。

1 つの提案は、セッターを非公開にし、ユーザーが日、月、年を任意の順序で設定できるようにする 1 つの公開 setDate メソッドを作成することでした...しかし、私はそれを正しく実装できないようです:

これは、プライベート セッターでの検証をスキップするだけだからです。

正直なところ、これを従来とは異なる方法で機能させる方法はたくさんありますが、適切なクラス設計規則に適合するようにすべてをクリーンアップするのに助けが必要です..

0 投票する
3 に答える
1852 参照

java - クラスのフィールドを初期化するためにコンストラクターで set メソッドを使用するのは良い習慣ですか?

コンストラクターでクラスの set メソッドを使用して、初期化する値をチェックし、設定した制約に準拠していない場合は例外をスローしたいと考えています。

コード例:

出力:

8 x スブラキを注文

キャッチされた例外: 数値は正でなければなりません

スレッド「メイン」の例外 java.lang.IllegalArgumentException: MyClass.main(MyClass.java:40) の MyClass.(MyClass.java:10) の MyClass.setString(MyClass.java:23) で文字列を空にすることはできません

出力はまさに私が望んでいたものです。最初に作成されたオブジェクトは、適切な値で初期化されます。toString() メソッドを呼び出すと、暗黙的にそれが証明されます。2 番目と 3 番目のオブジェクトは、初期化が間違っているために例外をスローします。プログラムの実行を継続できるようにするために、最初の例外がキャッチされます。2 番目の例外は、例外として出力されるエラー メッセージを出力するためにキャッチされません。

すべてが正しいように見えますが、これは優れたプログラミング手法ですか、それとも内部にいくつかのバグを隠していますか?

0 投票する
2 に答える
7136 参照

php - Laravel 5ミューテーターは、レコードを更新するときではなく、レコードを作成するときにのみ機能します

こんにちは、電話番号に数字のみを保存するミューテーターを作成しました。これが私のプロファイルモデルのコードです。

これは、新しいレコードを作成すると機能しますが、レコードを更新すると機能しません。私の質問は、作成と更新の両方で Mutator を実行するにはどうすればよいですか?

コントローラーで更新および作成する方法は次のとおりです。

0 投票する
1 に答える
2633 参照

datetime - Laravel 5 Attributes Mutators - ゲッターの問題

Article クラスに次の日付ミューテーターがあります。

次のように、新しい記事を作成するときに、datetimepicker を使用してデフォルト値を今日の日付に設定しています。

私のフォームでは、published_at および end_at 入力フィールドは次のとおりです。

ただし、日時は両方の入力フィールドで今日の日時に設定されています。published_at の日時を今日の午前 0 時に設定し、end_at を今日の日時から 30 日後に設定する必要があります。日付ピッカーのデフォルトは、編集操作であれば問題ない日付アクセサー メソッドによってオーバーライドされているようです。しかし、新しい記事を作成するときは、datetimepicker ウィジェットで定義された日付に従ってデフォルトにする必要があります。

誰でもこれを修正する方法を知っていますか?

0 投票する
1 に答える
86 参照

php - データベースに保存する前にモデルのフィールドをカスタマイズする方法

私はこのようなモデルを持っています:

そして、このようなコントローラー:

そして、このようなフォーム:

フォームを送信すると、img_profileフィールドはデフォルトでキャッシュされたファイルに保存されます。しかし、更新し/private/var/tmp/phpceBMP2たいだけです。file_nameimg_profile

img_profileデータベースに保存する前にリクエストの値を変更するにはどうすればよいですか?

0 投票する
2 に答える
483 参照

php - PHPフォームからの生年月日の値を個別に内破する

わかりました、私はアイデアがなくなり、研究の終点に達しました。

以下の生年月日選択フィールドの例を含む登録フォームがあります。

もちろん、それはlaravelのブレードテンプレートにあります。

ご覧のとおり、dob_month、dob_date、dob_year を含む 3 つの個別の選択フォームと、ユーザー モデルのミューテーターに値が追加されています。

dobsql 列名として使用します。

問題

をキャプチャしたいのですがdob_year、これは 1997-12-01 のように構造化され、これを使用dob_monthしてデータベースに保存されます。dob_dateimplode('-'array_values($dobString))

新しいユーザーをサインアップするプロセスを実行すると、Undefined index: dob というエラー メッセージが表示されます。

今では、ミューテーター関数setDobAttribute($dob)でその関数コード内に何かが欠けているような気がしますが、それが何であるかを指で示すことはできません。

入力?提案?

前もって感謝します。

0 投票する
2 に答える
355 参照

php - Laravel 4リストメソッド内でアクセサーミューテーターを使用する

私は単純なミューテーターを持っています:

しかし、選択入力で使用する特定のユーザーのリストを返すメソッドもあります。

返される配列が ['First Name Last Name', 'id'] である必要があります

しかし、ミューテーターは機能しません。

私はこれを見つけました: https://github.com/laravel/framework/issues/668

どのテイラーが完了とマークしていますが、私はそれを機能させることができません。Laravel 4.2 を使用しています。

何か助けはありますか?