将2个参数正确传递给控制器​​层级4.2

时间:2016-06-16 07:01:24

标签: php laravel laravel-4

我有这个页面根据id加载一个特定的记录,这个表单将允许用户修改记录这里是我的代码

@foreach($modData as $list)
    @endforeach
    <div class="gtdwn">

        <h5>Edit Details</h5>
        <h6>File Information</h6>
        {{ Form::open(array('method' => 'PUT', 'action' => array('sample@savemodfile', $list->subcategoryid, $list->fileid))) }}
            <h6>Filename    : </h6>
            {{ Form::text('eFile', $list->filename ) }}
            <span>File type     : {{ $list->filetype }} </span>
            @if($list->filetype == 'ppt' || $list->filetype == 'pptx')
                <img src="{{ asset('img/ico/pptico.PNG') }}" class="imgico">

            @elseif($list->filetype == 'doc' || $list->filetype == 'docx')
                <img src="{{ asset('img/ico/wordico.PNG') }}" class="imgico">

            @elseif($list->filetype == 'pdf')
                <img src="{{ asset('img/ico/pdfico.PNG') }}" class="imgico">

            @elseif($list->filetype == 'xls' || $list->filetype == 'xlsx')
                <img src="{{ asset('img/ico/excelico.PNG') }}" class="imgico">

            @elseif($list->filetype == 'txt')
                <img src="{{ asset('img/ico/txtico.PNG') }}" class="imgico">

            @elseif($list->filetype == 'csv')
                <img src="{{ asset('img/ico/csvico.PNG') }}" class="imgico">
            @endif

            <h6>Size        : {{ $list->filesize }} </h6>
            @if($list->confidential == 'true')
                {{ Form::checkbox('conf', 'true', true , array('id' => 'test5')) }}
                <label for="test5">confidential</label>
            @else
                {{ Form::checkbox('conf', 'true', null , array('id' => 'test5')) }}
                <label for="test5">confidential</label>
            @endif

            {{Form::select('sCategory',[ $list->subcategoryid =>'CURRENT CATEGORY :  ' . $list->subcategoryname . ' | ' . $list->maincategoryname] + $cats )}}

            {{ Form::submit('save', array('class' => 'btn btn-primary defcolor')) }}
        {{ Form::close()}}   

        <br>        
    </div>

到目前为止,当用户点击提交按钮时,它会正确加载数据

Route::put('modifyFile/{sid}/{id}' , array('as' => 'modfyFilesave', 'uses' => 'sample@savemodfile'));

我已经在我的表单中提供了id但是当我进行验证时它到达我的控制器时它无法读取其中的数据

public function savemodfile($scid , $id)
{
    $some = Input::get('eFile');
    dd($some);
    $rules = array(
        'eFile' => 'required|min:2|max:250|unique:nsa_fileuploads,filename'
    );

    $messages = array(
        'eFile.required'    => 'Please provide a filename.',
        'eFile.min'         => 'Filename should have atleast 2 characters.',
        'eFile.max'         => 'Filename can only have maximum of 250 characters.',
        'eFile.unique'      => 'Filename already exist.'
    );

    $validator = Validator::make(Input::all(), $rules , $messages);
    if ($validator->fails()) 
    {
        dd('some errors');
    }
    else
    {
        dd('okay');
    }
}

我尝试从Form::text('eFile',$list->filename)转储值,我从视图中获取了值,但是当我在验证器中使用它时,即使只是必需的,它也总是失败。知道我的代码有什么问题吗?提前谢谢!

2 个答案:

答案 0 :(得分:1)

用此

替换您的表单
{{ Form::open(array('files'=>true, 'action' => array('sample@savemodfile', $list->subcategoryid, $list->fileid))) }}

在您的表单中添加此行&#39;文件&#39; =&GT;真的

希望这段代码可以帮到你!!

答案 1 :(得分:1)

您在from中提供了一个控制器方法作为您的操作。这实际上有用吗?尝试更改此内容:

'action' => array('sample@savemodfile', $list->subcategoryid, $list->fileid)

'action' => route('modfyFilesave', array('sid' => $list->subcategoryid, 'id' => $list->fileid))