前提・実現したいこと
現在laravel5.7でシステムを作っております。
その中の、フォームにてラジオボタンで「はい」を選択した場合、
その詳細を入力する欄を必須にしたいと思っております。
その際、FormRequestクラスからの値への参照、
validationの生成の仕方がよくわかっておりません。
各サイトを元に下記のようなものを作成しておりますが、一部記載方法がわかりません。
question.blade.php
<input type="text" name="name" > <input type="radio" name="conf" value="1">はい <input type="radio" name="conf" value="2">いいえ <input type="text" name="conf_text" >
FormRequestクラス
public function rules() { $rules = [ // 'name' => 'required', ]; if ($this->conf == "1") { // わからない点:1 $rules['conf_text'] = 'required'; } //Validatorインスタンス生成 $validator = Validator::make($this, $rules); // わからない点:2 }
「$thisでpostした値にアクセスできる。」という記事を見つけたのですが、
この状態ではValidator::makeの第1引数が無い。みたいなエラーが出てしまいます。
どう書くのが正しいのか、どうかお知恵をお借りできませんでしょうか。よろしくお願いいたします。
>Validator::makeの第1引数が無い。みたいなエラーが出てしまいます。
エラーは原則、要約せずにそのままご提示ください。
あと・・・
if ($this->conf === 1) {
フォームから送信される情報は基本文字列なので例え値がとれてたとしてもこの条件式は成り立たないと思います。
失礼いたしました。
エラーの内容としては以下のようなものになります。
Argument 1 passed to Illuminate\Validation\Factory::make() must be of the type array, object given, called in /vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php on line 237
>フォームから送信される情報は基本文字列なので例え値がとれてたとしてもこの条件式は成り立たないと思います。
こちらですが
if ($this->conf == "1") {
に修正いたしました。
回答2件
あなたの回答
tips
プレビュー