feature/3: upload a file
This commit is contained in:
parent
834faedc1f
commit
0f127a0920
|
@ -37,9 +37,19 @@ class EditController extends Controller
|
||||||
|
|
||||||
if ($request->isMethod('post')) {
|
if ($request->isMethod('post')) {
|
||||||
$form->submit($request);
|
$form->submit($request);
|
||||||
|
$data = $form->getData();
|
||||||
|
|
||||||
|
if (empty($form->getData()['content']) && empty($request->files)) {
|
||||||
|
$form->get('content')->addError(new FormError('form.error.not_blank'));
|
||||||
|
} elseif (empty($form->getData()['content']) && !empty($request->files)) {
|
||||||
|
if (count($form->get('file')->getErrors()) === 0) {
|
||||||
|
$data['content'] = file_get_contents($form->get('file')->getData()->getPathName());
|
||||||
|
unset($data['file']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($form->isValid()) {
|
if ($form->isValid()) {
|
||||||
$gist = $app['gist']->create(new Gist(), $form->getData(), $this->getUser());
|
$gist = $app['gist']->create(new Gist(), $data, $this->getUser());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,16 +32,25 @@ class CreateGistForm extends AbstractForm
|
||||||
'content',
|
'content',
|
||||||
'textarea',
|
'textarea',
|
||||||
array(
|
array(
|
||||||
'required' => true,
|
'required' => false,
|
||||||
'attr' => array(
|
'attr' => array(
|
||||||
'class' => 'form-control',
|
'class' => 'form-control',
|
||||||
'rows' => 10,
|
'rows' => 10,
|
||||||
),
|
),
|
||||||
'trim' => false,
|
'trim' => false,
|
||||||
'constraints' => array(
|
'constraints' => array(
|
||||||
new NotBlank(array(
|
),
|
||||||
'message' => $this->translator->trans('form.error.not_blank'),
|
)
|
||||||
)),
|
);
|
||||||
|
|
||||||
|
$this->builder->add(
|
||||||
|
'file',
|
||||||
|
'file',
|
||||||
|
array(
|
||||||
|
'required' => false,
|
||||||
|
'attr' => array(
|
||||||
|
),
|
||||||
|
'constraints' => array(
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<form action="{{ path('home') }}" method="post" id="main-form">
|
<form action="{{ path('home') }}" method="post" id="main-form" enctype="multipart/form-data">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
|
@ -71,6 +71,10 @@
|
||||||
{{ form_errors(form.content) }}
|
{{ form_errors(form.content) }}
|
||||||
{{ form_widget(form.content) }}
|
{{ form_widget(form.content) }}
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
|
{{ form_errors(form.file) }}
|
||||||
|
{{ form_widget(form.file) }}
|
||||||
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<input type="submit" class="btn btn-primary" value="{{ 'form.submit'|trans }}">
|
<input type="submit" class="btn btn-primary" value="{{ 'form.submit'|trans }}">
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -106,6 +106,7 @@
|
||||||
var trans = function(key) {
|
var trans = function(key) {
|
||||||
var translations = {
|
var translations = {
|
||||||
'form.confirm': '{{ 'form.confirm'|trans }}',
|
'form.confirm': '{{ 'form.confirm'|trans }}',
|
||||||
|
'form.error.not_blank': '{{ 'form.confirm'|trans }}',
|
||||||
};
|
};
|
||||||
|
|
||||||
if (translations.hasOwnProperty(key)) {
|
if (translations.hasOwnProperty(key)) {
|
||||||
|
|
Loading…
Reference in a new issue