lundi 28 décembre 2015

How to use checkbox groups in Laravel5.1

Here is Error

Creating default object from empty value

Here is a part of view

<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
        </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

        </div>
      </div>
    </div>
</div>

Here is a part of ProfileController

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');
}

Here is a part of Profile

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();
  });

When i use only checkbox group(job[]),i have no errors with in my code.

What is wrong with this code? How do i use checkbox groups in Laravel5.1?




Aucun commentaire:

Enregistrer un commentaire