2014-04-21 68 views
3

我有一個表格看起來像這樣:Laravel形式不返回輸入=>真

{{ Form::open(array('route' => 'notebook.store', 'files' => true)) }} 
{{ Form::text('title', null, [ 
    'class'=>'form-control', 
    'placeholder'=>'Title', 
]) }} 
<br> 
{{ Form::text('description', null, [ 
    'class'=>'form-control', 
    'placeholder' => 'Desc', 
])}} 
<br> 
{{ Form::file('path') }} 
<br> 

{{ Form::submit('Save', [ 
    'class' => 'btn btn-primary btn-lg pull-right' 
]) }} 
<br><br> 
{{ Form::close()}} 

的問題是,Input::all()在我的控制器如果'files'=>true是在返回一個空數組表單描述,當我刪除它時,問題消失,Input::all()返回通常的預期輸入。

編輯 - 我發現了什麼問題了。我的服務器在php.ini中的post_max_size非常低,並且如果文件超過了這個限制,它顯然會清除所有的post/get數據。

+0

我嘗試添加' '文件'=>真'給我的一個表單,並且'Input :: all()'沒有問題。這個選項只是增加了'ENCTYPE =「多部分/格式數據」'到''

元件。 – totymedli

+0

可能與服務器有關,儘管我不確定是什麼。只有當你添加一個文件上傳,或者它只是總是返回一個空數組? –

+0

您的控制器中的Input :: file('path')是否爲空? – KNaito

回答

2

如果您沒有收到任何POST數據,你必須檢查的post_max_size指令,並和你比較有多少POST數據發送到服務器。

正如你已經經歷過,沒有POST數據的行爲在docs清楚地描述:

如果POST數據的大小大於post_max_size中,$ _ POST和$ _FILES superglobals便會爲空。這可以通過各種方式進行跟蹤,例如,通過將$ _GET變量傳遞給處理數據的腳本,即,然後檢查是否設置了$ _GET ['processed']。

的解決方案是增加值post_max_size,和/或也upload_max_size甚至memory_limit

3

使用此:

{{ Form::open(array('route' => 'notebook.store', 'enctype' => 'multipart/form-data')) }} 

因任何理由:

{{ Form::open(array('route' => 'notebook.store', 'files' => true)) }} 

不起作用!

+0

如何使用「文件」 =>真用於編輯形式?? –

+0

{!!形式::模型($製品,陣列( '方法'=> 'PATCH', '路線'=>數組( 'articles.update',$物品─> ID), '文件'=>真))!} 我都用這個,但不工作 –

0

它不工作,因爲你要添加的文件=>真到了路線數組:

{{ Form::open(array('route' => 'notebook.store', 'files' => true)) }} 

相反試試這個

{{ Form::model(array('route'=>array('notebook.store'),'files'=>true)) }} 
0
{!! Form::open(['url' => 'notebook.store', 'method' => 'post', 'enctype' => 'multipart/form-data']) !!} 

    <div class="form-group"> 
     {!! Form::file('logo', null, ['class' => 'form-control']) !!} 
    </div> 

    {!! Form::submit('Upload', ['class' => 'btn btn-primary']) !!} 
+0

可以添加explantion,爲什麼你的想法沃爾解決這一問題? – reporter

相關問題