【问题标题】:Undefined variable in action route with parameter for laravel动作路线中未定义的变量,带有laravel的参数
【发布时间】:2018-12-24 21:31:12
【问题描述】:

这是我的观点,我想将 r{{$i}}_selected 传递给控制器​​,但它给了我一个错误。未定义变量:企业。我该如何解决这个问题?

<form name="frm-example" id="frm-example" 
    action="{{ route('pengawas_alokasi.store', $enterprise ) }}" 

    method="post">
        {{ csrf_field() }}


        <div class="table-responsive text-center">
            <table class="table table-borderless table-striped table-hover" id="myTable">
                <thead class="thead-dark">
                    <tr>
                        <th></th>
                        <th class="text-center">#</th>
                        <th class="text-center">Nama Perusahaan</th>
                    </tr>
                </thead>

                <?php $i=1;?> @foreach($enterprises as $enterprise)
                 <tr>
                    {{--
                    <td></td> --}}
                    <td>
                    <input type="checkbox" name="r{{$i}}_selected" value="{{$enterprise->id}}">
                    </td>


                    <td>{{$i}}</td>

                    {{-- <td>
                    <input type="hidden" name="nomor{{$i}}" value="{{$i}}" size="3">{{$i}}</td> --}}


                    <td>{{$enterprise->nama_perusahaan}}</td>
                    {{-- <td>
                    <input type="hidden" name="nama_perusahaan{{$i}}" value="{{$enterprise->nama_perusahaan}}" size="3">{{$enterprise->nama_perusahaan}}</td> --}}

                </tr>
                <?php $i=$i+1;?> @endforeach
            </table>
        </div>

        <div class="form-group">
            <input type="submit" name="" class="btn btn-primary" value="Submit">
        </div>
</form>

这是负责上面视图的控制器

public function insert($id)
{
     $enterprises = Enterprise::get();      
     return view('pengawas.pengawas-insert-alokasi', compact('enterprises'));
}

这是应该在我的视图表单中存储我想要检索的值的控制器

public function store_enterprise(Request $request){
//I'm not doing it yet    
dd($request);

}

【问题讨论】:

  • 您可以在表单的隐藏输入中传递变量。
  • 我已经这样做了,我想测试我是否可以使用在表单中定义的 $enterprise 变量传递它,但是如果我使用 action=" {{ route('pengawas_alokasi .store', $enterprise ) }} ",如果我对此发表评论,我没有收到任何错误。错误是未定义的变量

标签: laravel laravel-5.6


【解决方案1】:

您可以在表单中使用隐藏变量,而不是使用 URL 变量:

<input type="hidden"  name="enterprise" value="{{$enterprise}}">

在你的控制器中:

public function insert(Request $request)
{
     //get enterprise value here
     $enterprise = $request->enterprise;

}

【讨论】:

  • insert 是查看表单视图,而 store_enterprise 是存储我从表单视图中获得的值。我认为该功能适用​​于 store_enterprise,我的问题是我无法将表单视图中的值(例如 r{{$i}}_selected)传递给其他控制器。在这种情况下,我使用 action="{{ route('pengawas_alokasi.store', $enterprise ) }}" 来获取值,但我得到了未定义的变量
  • 如果您可以直接 POST 到您的 store_enterprise,为什么要将其作为单独的函数
  • 因为我只想存储其中的一些,所以我在表单中添加了复选框,我想先对其进行测试(通过检查的值),但我得到了错误并一直停留在那里直到现在。
  • 实际上,我也没有参数(没有 $enterprises),只有路线,但我得到了 Missing required parameters for [Route: pengawas_alokasi.store]
【解决方案2】:

因为您正在从控制器发送“企业”,并且您正试图在表单的操作中发送“企业”

【讨论】:

  • 顺便说一句,我这样做了,但我遇到了另一个错误。 缺少 [Route: pengawas_alokasi.store] 的必需参数
  • 你能在你的 web.php 文件中告诉我这个路径吗?
猜你喜欢
  • 1970-01-01
  • 2013-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-23
  • 2018-10-15
  • 2023-03-29
  • 1970-01-01
相关资源
最近更新 更多