【问题标题】:Pass URL id to form via hidden input ? Laravel 5通过隐藏输入将 URL id 传递给表单?拉拉维尔 5
【发布时间】:2016-09-05 10:05:32
【问题描述】:

我想知道有没有办法通过隐藏输入(不使用路由参数)将 URL id 传递给表单?我得到了这个表单 url:http://1mark.dev/jurnal/create?edisi=1,它是由这个 url 生成的:<a href="../jurnal/create?edisi={{$edisi->id}}" class="btn btn-primary">Tambah Jurnal</a> 我想获取 id 并将其传递给创建表单视图:

@if (isset($jurnal))
    {!! Form::hidden('id', $jurnal->id) !!}
@endif

@if ($errors->any())
    <div class="form-group {{ $errors->has('judul') ? 'has-error' : 'has-success' }}">
@else
    <div class="form-group">
@endif
    {!! Form::label('judul', 'Judul :', ['class' => 'control-label']) !!}
    {!! Form::text('judul', null, ['class' => 'form-control']) !!}
    @if ($errors->has('judul'))
        <span class="help-block">{{ $errors->first('judul') }}</span>
    @endif
</div>

@if ($errors->any())
    <div class="form-group {{ $errors->has('penulis') ? 'has-error' : 'has-success' }}">
@else
    <div class="form-group">
@endif
    {!! Form::label('penulis', 'Penulis :', ['class' => 'control-label']) !!}
    {!! Form::text('penulis', null, ['class' => 'form-control']) !!}
    @if ($errors->has('penulis'))
        <span class="help-block">{{ $errors->first('penulis') }}</span>
    @endif
</div>

@if ($errors->any())
    <div class="form-group {{ $errors->has('abstrak') ? 'has-error' : 'has-success' }}">
@else
    <div class="form-group">
@endif
    {!! Form::label('abstrak', 'Abstrak :', ['class' => 'control-label']) !!}
    {!! Form::textarea('abstrak', null, ['class' => 'form-control']) !!}
    @if ($errors->has('abstrak'))
        <span class="help-block">{{ $errors->first('penulis') }}</span>
    @endif
</div>

@if ($errors->any())
    <div class="form-group {{ $errors->has('file') ? 'has-error' : 'has-success' }}">
@else
    <div class="form-group">
@endif
    {!! Form::label('file', 'File Jurnal (PDF) :') !!}
    {!! Form::file('file') !!}
    @if ($errors->has('file'))
        <span class="help-block">{{ $errors->first('file') }}</span>
    @endif
</div>
    {!! Form::hidden('id', $edisi->id) !!}    
<div class="form-group">
    {!! Form::submit($submitButtonText, ['class' => 'btn btn-primary form-control']) !!}
</div>

我的问题是,如何将 edisi id 传递给视图,以便我可以将其传递回控制器。谢谢

创建控制器:

public function create(Edisi $edisi) {
        return view('jurnal/create', compact('edisi'));
    }

存储控制器:

public function storejurnal(JurnalRequest $request) {
        $input = $request->all();
        //Input PDF
        if ($request->hasFile('file')) {
            $input['file'] = $this->uploadPDF($request);
        }
        //Insert data jurnal
        $id = $request->id;
        $jurnal = Edisi::findOrFail($id)->jurnal()->create($input);
        return redirect('jurnal');
    }

【问题讨论】:

    标签: laravel laravel-5


    【解决方案1】:

    您可以将变量传递给类似的视图

    return view('your view')->with('edisi', \Request::get('edisi'));
    

    【讨论】:

    • 试过了,它给了我这个错误:尝试获取非对象的属性(查看:C:\xampp\htdocs\1mark\resources\views\jurnal\form.blade.php)(查看:C:\xampp\htdocs\1mark\resources\views\jurnal\form.blade.php) ..
    • 你应该简单地使用 $edisi 因为它不是一个对象并且 $edisi->id 会抛出一个错误。 @AriandoMiller
    【解决方案2】:

    您需要像往常一样将变量传递给视图:

    return view('my.view', compact('edisi'));
    

    然后您可以将此变量传递给控制器​​。像现在一样在视图中使用它:

    {!! Form::hidden('id', $edisi->id) !!}
    

    并在控制器中使用它:

    public function someAction(Request $request)
    {
        $id = $request->id;
    }
    

    【讨论】:

    • 试过了,给了我这个错误:没有模型 [App\Edisi] 的查询结果。我想存储属于 edisi 的期刊数据。 edisi 记录存在,问题似乎是我无法正确检索 id。我已经更新了问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    • 2017-01-10
    • 2021-05-30
    • 2019-05-26
    • 2020-06-19
    • 1970-01-01
    相关资源
    最近更新 更多