Возможно, кто-то может помочь мне найти мою ошибку.jquery вызывает Cakephp 3 Controller
В Cakephp я хотел бы использовать автозаполнение jquery, и когда пользователь выбирает проверку значения с контроллером, если новое значение должно храниться в базе данных или нет.
вот код для просмотра
<?php
echo $this->Form->input('Name', array(
'label' => 'Anbieter',
'empty' => true,
'required' => 'required',
'templates' => array(
'inputContainer' => '{{content}}',
),
'class' => 'select anbieter',
'id' => 'Anbieter'
));
и сценарий
<script>
jQuery('#Anbieter').autocomplete({
source:'<?php echo Cake\Routing\Router::url(array('controller' => 'Anbieter', 'action' => 'getAll')); ?>',
minLength: 0,
autoFill: false,
select: function(event, ui) {
$.ajax({
url: '<?php echo Cake\Routing\Router::url(array('controller' => 'Anbieter', 'action' => 'addCreate')); ?>',
success: function(event, ui){
console.log(ui);
},
error: function(event, ui){
console.log(ui);
}
});
}
});
в контроллере я это
public function add()
{
$this->viewBuilder()->layout('other');
$anbieter = $this->Anbieter->newEntity();
if ($this->request->is('post')) {
$anbieter = $this->Anbieter->patchEntity($anbieter, $this->request->data);
if ($this->Anbieter->save($anbieter)) {
$this->Flash->success(__('The anbieter has been saved.'));
return $this->redirect(['action' => 'index']);
} else {
$this->Flash->error(__('The anbieter could not be saved. Please, try again.'));
}
}
$this->set(compact('anbieter'));
$this->set('_serialize', ['anbieter']);
}
public function addCreate()
{
if($this->request->is('ajax')){
// do nothing for now
}
}
это просто манекен код, пожалуйста Не будьте придирчивыми abo ут его;)
моя проблема, если я использовать код выше, я получаю внутренняя ошибка сервера, но если я могу изменить
url: '<?php echo Cake\Routing\Router::url(array('controller' => 'Anbieter', 'action' => 'addCreate')); ?>'
в
url: '<?php echo Cake\Routing\Router::url(array('controller' => 'Anbieter', 'action' => 'add')); ?>',
все работает отлично. .. , но это не то, что я хочу, так что мне не хватает?
большое спасибо в продвинутом состоянии
l.b.
редактировать: ошибка toolbar.js: 90 ПОЛУЧИТЬ http://localhost/anbieter/add-create 500 (Внутренняя ошибка сервера)
Всякий раз, когда вы получаете ошибки, всегда указывайте ** ошибку _complete_ **, то есть **, включая _full_ stacktrace ** (идеально скопированную из журналов, где она доступна с возможностью чтения), даже если проблема может быть очевидным для людей, знакомых с CakePHP! Также показать/описать правильный контекст, то есть показать/выделить код, который фактически вызывает ошибку, и, пожалуйста, всегда упоминайте свою версию _exact_ CakePHP - спасибо! – ndm