質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.48%

  • Laravel

    1054questions

    LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

  • checkbox

    51questions

    checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

Laravel5.1でチェックボックスのグループを複数使用時にエラー

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,970

twin_bird

score 216

Laravel5.1でグループ化されたチェックボックスを複数しようしたとき、以下のようなエラーが出ました。

Creating default object from empty value

エラー詳細

at HandleExceptions->handleError('2', 'Creating default object from empty value', '/vagrant/project/webyone/app/Http/Controllers/Config/ProfileController.php', '75', array('request' => object(Request), 'inputs' => array('_token' => '##token##', 'job' => array('サーバーサイドエンジニア', 'ネットワークエンジニア'), 'tech_skill' => array('XHTML'), 'biz_skill' => array('GoogleAdSense'), 'tw_id' => '', 'fb_id' => '', 'url' => '', 'comment' => ''), 'rules' => array('tw_id' => 'max:100', 'fb_id' => 'max:100', 'url' => 'url|max:200', 'comment' => 'max:500'), 'message' => array('tw_id' => 'TwitterIDは100文字以内で記入してください。', 'fb_id' => 'FacebookIDは100文字以内で記入してください。', 'url.url' => 'URLは正しい形式で指定してください。', 'url.max' => 'URLは200文字以内で指定してください。', 'comment.max' => 'コメントは500文字以内で記入してください。'), 'validator' => object(Validator), 'user' => object(User), 'name' => 'kenta', 'data' => object(Profile), 'job' => array('サーバーサイドエンジニア', 'ネットワークエンジニア'), 'jobImp' => 'サーバーサイドエンジニア,ネットワークエンジニア', 'tech' => array('XHTML'), 'techImp' => 'XHTML', 'date' => object(stdClass))) in ProfileController.php line 75

フォーム入力画面抜粋
<div class="form-group">
    <label class="col-md-4 control-label">職種</label>
    <div class="col-md-6">
       <div class="col-md-6">
           <label class="checkbox-inline">
               <input type="checkbox" name="job[]" value="アカウント/企画営業" {{ $data->checkedJob('アカウント/企画営業') }}>
               アカウント/企画営業
           </label>
       <label class="checkbox-inline">
               <input type="checkbox" name="job[]" value="プロジェクトマネージャー/プロデューサー" {{ $data->checkedJob('プロジェクトマネージャー/プロデューサー') }}>
               プロジェクトマネージャー/プロデューサー
           </label>
       <label class="checkbox-inline">
               <input type="checkbox" name="job[]" value="Webディレクター" {{ $data->checkedJob('Webディレクター') }}>
               Webディレクター
           </label>
       <label class="checkbox-inline">
               <input type="checkbox" name="job[]" value="Webマーケター" {{ $data->checkedJob('Webマーケター') }}>
               Webマーケター
           </label>
       </div>
    </div>
</div>

<div class="form-group">
    <label class="col-md-4 control-label">スキル</label>
    <div class="col-md-6">
      <!-- タブ・メニュー -->
      <ul class="nav nav-tabs">
        <li class="active"><a href="#sampleContentA" data-toggle="tab">エンジニア・デザイナー</a></li>
        <li><a href="#sampleContentB" data-toggle="tab">ビジネス</a></li>
      </ul>

      <!-- タブ内容 -->
      <div class="tab-content">
        <div class="tab-pane active" id="sampleContentA">
          <p>Web制作</p>
           <input type="checkbox" name="tech_skill[]" value="XHTML" {{ $data->checkedTech('XHTML') }}>XHTML
           <input type="checkbox" name="tech_skill[]" value="HTML" {{ $data->checkedTech('HTML') }}>HTML
           <input type="checkbox" name="tech_skill[]" value="CSS" {{ $data->checkedTech('CSS') }}>CSS


          <p>グラフィック・イラスト・DTP</p>
           <input type="checkbox" name="tech_skill[]" value="グラフィックデザイン" {{ $data->checkedTech('グラフィックデザイン') }}>グラフィックデザイン
           <input type="checkbox" name="tech_skill[]" value="ロゴデザイン" {{ $data->checkedTech('ロゴデザイン') }}>ロゴデザイン
           <input type="checkbox" name="tech_skill[]" value="イラスト" {{ $data->checkedTech('イラスト') }}>イラスト

          <p>アプリケーション</p>
           <input type="checkbox" name="tech_skill[]" value="AdobePhotoshop" {{ $data->checkedTech('Adobe Photoshop') }}>Adobe Photoshop
           <input type="checkbox" name="tech_skill[]" value="AdobeIllustrator" {{ $data->checkedTech('Adobe Illustrator') }}>Adobe Illustrator
           <input type="checkbox" name="tech_skill[]" value="AdobeFireworks" {{ $data->checkedTech('Adobe Fireworks') }}>Adobe Fireworks

          <p>CMS</p>
           <input type="checkbox" name="tech_skill[]" value="WordPress" {{ $data->checkedTech('WordPress') }}>WordPress
           <input type="checkbox" name="tech_skill[]" value="MovableType" {{ $data->checkedTech('MovableType') }}>MovableType

          <p>開発言語</p>
           <input type="checkbox" name="tech_skill[]" value="JavaScript" {{ $data->checkedTech('JavaScript') }}>JavaScript
           <input type="checkbox" name="tech_skill[]" value="Python" {{ $data->checkedTech('Python') }}>Python

          <p>データベース</p>
           <input type="checkbox" name="tech_skill[]" value="MySQL" {{ $data->checkedTech('MySQL') }}>MySQL
           <input type="checkbox" name="tech_skill[]" value="NoSQL" {{ $data->checkedTech('NoSQL') }}>NoSQL

          <p>Webサーバー</p>
           <input type="checkbox" name="tech_skill[]" value="Apache" {{ $data->checkedTech('Apache') }}>Apache
           <input type="checkbox" name="tech_skill[]" value="IIS" {{ $data->checkedTech('IIS') }}>IIS

          <p>OS・クラウド</p>
           <input type="checkbox" name="tech_skill[]" value="Windows" {{ $data->checkedTech('Windows') }}>Windows
           <input type="checkbox" name="tech_skill[]" value="Mac" {{ $data->checkedTech('Mac') }}>Mac


          <p>ソースコード管理</p>
           <input type="checkbox" name="tech_skill[]" value="github" {{ $data->checkedTech('github') }}>github
           <input type="checkbox" name="tech_skill[]" value="git" {{ $data->checkedTech('git') }}>git

        </div>

        <div class="tab-pane" id="sampleContentB">
          <p>Webマーケティング</p>
           <input type="checkbox" name="biz_skill[]" value="Webディレクション" {{ $data->checkedBiz('Webディレクション') }}>Webディレクション
           <input type="checkbox" name="biz_skill[]" value="GoogleAdSense" {{ $data->checkedBiz('Google AdSense') }}>Google AdSense


          <p>アプリケーション</p>
           <input type="checkbox" name="biz_skill[]" value="Word" {{ $data->checkedBiz('Word') }}>Word
           <input type="checkbox" name="biz_skill[]" value="Excel" {{ $data->checkedBiz('Excel') }}>Excel

          <p>語学</p>
           <input type="checkbox" name="biz_skill[]" value="英語" {{ $data->checkedBiz('英語') }}>英語
           <input type="checkbox" name="biz_skill[]" value="中国語" {{ $data->checkedBiz('中国語') }}>中国語

        </div>
      </div>
    </div>
</div>
 :
 :
 :
コントローラーのメソッド部分抜粋
public function postUpdate(Request $request)
    {
        // バリデーション
        $inputs = $request->all();

        // ルール
        $rules = [
            'tw_id'=>'max:100',
            'fb_id'=>'max:100',
            'url'=>'url|max:200',
            'comment'=>'max:500'
        ];

        $message = [
            'tw_id'=>'TwitterIDは100文字以内で記入してください。',
            'fb_id'=>'FacebookIDは100文字以内で記入してください。',
            'url.url' => 'URLは正しい形式で指定してください。',
            'url.max' => 'URLは200文字以内で指定してください。',
            'comment.max' => 'コメントは500文字以内で記入してください。',
        ];

        $validator = \Validator::make($inputs,$rules,$message);

        if($validator->fails()){
          return redirect()->back()->withErrors($validator->errors())->withInput();
        }

        // ユーザー情報取得
        $user = Auth::user();
        $name = $user->name;

        // Profileテーブルのデータ取得
        $data = Profile::where('name','=',$name)->first();

        $job = $request->job;
        $jobImp = implode(',',$job);
        $data->job = $jobImp;

        $tech = $request->tech_skill;
        $techImp = implode(',',$tech);
        $date->tech_skill = $techImp;

        $biz = $request->biz_skill;
        $bizImp = implode(',',$biz);
        $date->biz_skill = $bizImp;

        $data->tw_id = $request->tw_id;
        $data->fb_id = $request->fb_id;
        $data->url = $request->url;
        $data->comment = $request->comment;

        $data->save();

        \Session::flash('flash_message', 'プロフィール情報を更新しました!');

        return redirect()->to('mypage');
    }
 :
 :
 :
テーブル構造抜粋(スキーマ)
Schema::create('profile', function (Blueprint $table) {
          $table->increments('id');
          $table->rememberToken();
          $table->timestamps();
          $table->string('name')->foreign('users')->on('name');
          $table->text('profile_image_name',200);
          $table->text('job',50)->nullable();
          $table->text('tech_skill',500)->nullable();
          $table->text('biz_skill',500)->nullable();
          $table->string('tw_id',100)->nullable();
          $table->string('fb_id',100)->nullable();
          $table->string('url',200)->nullable();
          $table->string('comment',500)->nullable();
      });

エラーの内容はなんとなくわかるのですが、対応方法がわかりません。。。
どなた回答お願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

date→data でした。。。
ただのスペルミスでしたw

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • Laravel

    1054questions

    LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

  • checkbox

    51questions

    checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。