数据库中错误的值选择选项

时间:2019-03-06 04:14:05

标签: php laravel laravel-5.7

我正在使用laravel创建更新功能,我试图传递要更新的值,但该值失败或错误。

这是我的sql表

id |    name        |            email                |     pic_for
1     Michael             michael@mic.com                    null
2     John Doe            john.doe@gmail.com                  1
3     Kelme               kelme@gmail.com                     2
4     Munich              x.munich@det.com                    1
5     Phylon              phy@phylon.com                      2

要显示该值并进行更改,我在控制器中使用了两个语句,用户获取所选值的用户名和图片

这是我的控制器进程

public function updateuser($id)
{
    $users=DB::table('users')->where('id',$id)->get();

    $pic=DB::table('users')->get();

    //dd($id);
    //dd($users);

    //menampilkan data ke view index
    return view('updateuser',['users'=>$users,'pic'=>$pic,'id'=>$id]);

}

这是我的观点。刀片

  @foreach($users as $user)                      
 <div class="row">
     <input name="_method" type="hidden" value="PUT"> 
     <div class="col-md-12 pr-1">
         <div class="form-group">
             <label>Name</label>
             <input type="text" class="form-control" name="name" placeholder="Full Name" value="{{ $user->name }}">
          </div>
      </div>

  <div class="col-md-12 pr-1">
     <div class="form-group">
          <label>In Charge</label>

          <select name="in_charge" id="in_charge" >

           @foreach($pic as $pics)
               @if($pics->pic_for != null)
                 <option value="{{ $pics->pic_for}}" selected>{{ $pics->name }}</option>
               @else
               <option value="{{ $pics->id}}">{{ $pics->name }}</option>
               @endif
        @endforeach
        </select>
      </div>
 </div>
 @endforeach

我想要的是当管理员单击数据用户时,它就像数据库一样显示

 Name  ; name

 Pic   : pic_for

管理员可以使用选择选项值更改pic列,该值取自所有id。

问题出在所选值上,当我单击或显示页面时,选择选项得到错误的值

What I Want
Name : John Doe (id 2)
Pic For : Michael (id 1) selected value
It has same value with database

For Now
Name : John Doe (id 2)
Pic For : Phylon (id 5) selected value

您知道错误代码在哪里吗?

谢谢

2 个答案:

答案 0 :(得分:2)

更改此行并尝试

@if($pics->id == $user->pic_for)
 <option value="{{ $pics->pic_for}}" selected>{{ $pics->name }}</option>
@else

您需要从用户处检查pic_for

答案 1 :(得分:0)

您尝试以下操作:

return view('updateuser',compact(['users']);