Я пытаюсь сохранить поле description
с varchar (500) в базе данных. Когда я смотрю на панель Net в firebug, все описание публикуется (более 200 слов). Однако в cakephp сохраняется только 75 слов. Я установил контрольную точку в своем контроллере и посмотрел на эту информацию -> request->, и она имеет около 150 символов. Ниже мой код:Cakephp2.3 Текстовая область неправильно отправляется
<fieldset>
<legend>Create Log</legend>
<?php echo $this->Form->Create('Log', array('inputDefaults' => array('div' => false, 'label' => false))); ?>
<div class="control-group">
<div class="input-prepend">
<span class="add-on"><i class="icon-folder-open"></i></span>
<?php echo $this->Form->input('project_id'); ?>
</div>
</div>
<div class="control-group">
<div class="input-prepend">
<span class="add-on"><i class="icon-user"></i></span>
<input type="text" id="txtName" placeholder="Customer" />
<?php echo $this->Form->Hidden('customer_id'); ?>
<a><span class="add-on"><i class="icon-plus" style="color: green;" onclick="window.open('<?php echo $this->Html->Url(array('controller' => 'customers', 'action' => 'add?popup')); ?>', 'Add Customer', 'height=630, width=430')"></i></span></a>
</div>
</div>
<div class="control-group">
<div class="input-prepend">
<span class="add-on"><i class="icon-time"></i></span>
<?php echo $this->Form->input('time_spent', array('placeholder' => 'Time spent (hrs)')); ?>
</div>
</div>
<div class="control-group">
<div class="input-prepend">
<span class="add-on"><i class="icon-book"></i></span>
<?php echo $this->Form->textarea('description', array('placeholder' => 'Description', 'class' => 'logTextArea', 'rows' => '7')); ?>
</div>
</div>
<?php echo $this->Form->end(array(
'label' => 'Save Record',
'class' => 'btn btn-primary',
'div' => false
)); ?>
<?php echo $this->Html->script('jquery.autocomplete', array('inline' => false)); ?>
<?php $this->start('script'); ?>
<script type="text/javascript">
$(document).ready(function() {
var options, a;
jQuery(function() {
options = {
serviceUrl: "<?php echo $this->Html->Url(array('controller' => 'logs', 'action' => 'autoComplete.json')); ?>",
minChars: 2,
onSelect: function(suggestion){ $('#LogCustomerId').val(suggestion.data); }
};
a = $('#txtName').autocomplete(options);
});
});
</script>
<?php $this->end(); ?>
Контроллер:
public function add() {
$this->set('title_for_layout', 'Add log');
// Populate projects DDL
$this->set('projects', $this->Log->Project->find('list', array(
'order' => array('Project.project_name')
)));
if ($this->request->is('post'))
{
$this->Log->create();
if ($this->Log->save($this->request->data))
{
$this->Session->setFlash('Log has succesfully been created', 'default', array('class' => 'alert alert-success'));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('Unable to save log', 'default', array('class' => 'alert alert-error'));
}
}
}
Как выглядит ваше определение таблицы? Вы пытались очистить кеш-модель cakephp (app/tmp/cache/Models)? Кроме того, установите уровень отладки на 2 и проверьте, какие SQL-запросы выполняются, чтобы проверить, созданы ли правильные запросы. – thaJeztah
Хм, извините, просто понял, что я неправильно понял ваш вопрос, правильно ли понимаю, что данные уже усечены внутри '$ this-> request-> data'? Вы пытались отлаживать/отслеживать необработанные данные '$ _POST'? – thaJeztah
@thaJeztah правильно, что данные уже усечены внутри данных $ this-> request->. Я также проверил необработанные данные $ _POST, и он усечен там. Когда вы говорите, очистить кэш модели, следует ли просто удалить каталог Models? – Andrew