【问题标题】:How to pass a value from controller in a button to the next blade?如何将按钮中的控制器的值传递给下一个刀片?
【发布时间】:2018-12-04 15:25:45
【问题描述】:

我想从这个控制器传递值:

public function show($id)
{
  $data_show = DB::select("SELECT * FROM staffs WHERE id = ?", [$id]);
  $data_profil = DB::select("SELECT id FROM staffs WHERE id = ?", [$id]);
  return view('keluarga.index', compact('data_show', 'data_profil'));
}

将值传递给这个刀片:

<div class="row">
  <div class="form-group">
      <!--add new button  -->
      <div class="col-lg-2">
          {!! Form::open(['route' => 'addkeluarga_form', $data_profil->id]) !!}

          {{ Form::submit('Add New', ['class' => 'btn btn-primary']) }}

          {!! Form::close() !!}
      </div>
      <!-- show all button -->
      <div class="col-lg-1">
          {{ Form::submit('Delete', ['class' => 'btn btn-danger']) }}
      </div>
      <div class="col-lg-1">
          {{ Form::submit('Cancel', ['class' => 'btn btn-warning']) }}
      </div>    
  </div>
</div>

这是添加新按钮,可将人员 ID 带到添加新刀片。但是读取刀片中id的值失败。

如何解决这个问题?

【问题讨论】:

标签: mysql arrays laravel laravel-5


【解决方案1】:

这样会更容易写

$data_profil = DB::table("staffs")->select("id")->whereId($id)->first();

但是这没有任何意义,因为您的控制器中已经有 $id 。从数据库中再次检索它是没有意义的。

$id 传递给模板并改为使用它

返回视图('keluarga.index', compact('data_show', 'id'));

【讨论】:

  • 选择语法有效...只是这个按钮不读取值
  • {!! Form::open(['route' => 'addkeluarga_form', $data_profil->id]) !!} 此代码无法读取数组值
  • $data_profil 是一个集合。应该使用 ->first() 或其他东西将结果缩小到一个。我会更新我的答案
  • 谢谢!我想如何将 id 传递给模板...对不起,愚蠢的问题。我是初学者...
  • 看一下答案:压缩一下,返回视图
【解决方案2】:

使用 print_r() 方法检查 data_profil 变量是否包含您的期望。即

$data_profil = DB::select("SELECT id FROM staffs WHERE id = ?", [$id]);
print_r($data_profil);//you will comment this out latter

在页面顶部检查变量的内容,如果您看到像 Array ( [0] =&gt; stdClass Object ( [id] =&gt; 1 , ...)) 这样的嵌套数组输出,那么您可能希望在模板中将变量引用为数组。即

$data_profil[0]->id

【讨论】:

  • 感谢您的分享...我将在其他功能中使用您的方法。非常感谢
【解决方案3】:

对于第一个查询获取所有列, 对于第二个查询,我认为您不需要获取 id,因为您已经有了 id。

$data_show = DB::table("staffs")->where('id',$id)->first();
$data_profil = $data_show->id;
OR
$id = $id; // As the same id it will return

return view('keluarga.index', compact('data_show', 'data_profil','id'));

【讨论】:

    猜你喜欢
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    • 2018-01-09
    • 2018-03-08
    • 2020-09-02
    • 2017-11-30
    • 2014-03-26
    • 2019-12-29
    相关资源
    最近更新 更多