Моя форма laravel 4 для загрузки товара не отправляет ifo в базу данных
Форма ввода не отправляет входные данные в базу данных, я даже изменил сообщение, чтобы поместить его, начиная отправлять информацию в URL, но это все еще не заканчивается в базе данных. Кстати, я использую SQLite, может действительно использовать некоторую помощь или ввод.
<section class="wrapper">
<div class="panel panel-default">
<div class="panel-body">
<!-- Standar Form -->
<form method="POST" action="{{ action('UploadController@handleCreate') }}" role="form">
<fieldset>
<h5>Upload Your Product's Files Here</h5>
<div class="form-actions form-group">
<input type="file" name="filepath" />
</div>
<div class="form-group">
<label for="name">
Product Name
</label>
<input class="form-control" placeholder="Name of your Product" type="text" name="name" id="name"/>
</div>
<div class="form-group">
<label for="developer_name">
Developer Name
</label>
<input class="form-control" placeholder="developer name" type="text" name="developer_name" id="developer_name"/>
</div>
<div class="form-group">
<label for="description">
The Description Of Your Product
</label>
<textarea class="form-control" rows="5" type="text" name="description"/>
</textarea>
</div>
<div class="form-group">
<label for="OS">
Compatible Operating System
</label>
<select class="form-control" name="OS"/>
<option value="Crossplatform">Cross Platform</option>
<option value="OSX">OSX</option>
<option value="Windows">Windows</option>
<option value="Linux">Linux</option>
<option value="IOS">IOS</option>
<option value="Android">Android</option>
</select>
</div>
<div class="form-group">
<label for="price">
Set The Price (if free leave as is)
</label>
<input class="form-control" placeholder="0.00" type="decimal" name="price" id="price"/>
</div>
<div class="form-group">
<label for="category">
Choose a category for your product
</label>
<select class="form-control" name="category"/>
<option value="free">Free</option>
<option value="premuim">Premium</option>
<option value="opensource">Opensource</option>
<option value="collaborativeefforts">Collabritive Efforts</option>
<option value="developertools">Developer Tools</option>
</select>
</div>
<h4>upload a thumbnail for your product</h4>
<div class="form-inline">
<input type="file" name="image" />
</div>
<hr>
<div class="form-actions form-group">
<input type="submit" value="submit" class="btn btn-primary" />
<a href="{{ action('UploadController@getindex') }}" class="btn btn-link">Cancel</a>
</div>
</fieldset>
</form>
</div>
</div>
</section>
А вот та часть контроллера, которая обрабатывает контроллер представления формы
public function create()
{
return View::make('developerpanel.upload.index');
}
//Handle create form submission.
public function handleCreate()
{
$product = new Product;
$product->filepath = Input::file('filepath');
$product->name = Input::get('name');
$product->developer_name = Input::get('developer_name');
$product->description = Input::get('description');
$product->OS = Input::get('OS');
$product->price = Input::get('price');
$product->category = Input::get('category');
$product->image = Input::file('image');
$product->save();
return Redirect::route('developerpanel.index');
}
Могли бы реально воспользоваться помощью Спасибо!
2 ответа
Поскольку вы загружаете файлы, ваша форма должна иметь enctype="multipart/form-data"
приписывать.
<form method="POST" action="{{ action('UploadController@handleCreate') }}" role="form" enctype="multipart/form-data">
Кроме того, вы не хотите просто пытаться сохранить объект файла в базе данных, как это. Проверьте документы Laravel здесь относительно загрузки файла.
Используйте методы Laravel и, возможно, сделайте некоторую проверку, чтобы убедиться, что это файл изображения.
{{ Form::open(array('action'=>'UploadController@handleCreate', 'role'=>'form', 'files'=>true)) }}
...
{{ Form::close() }}