vielleicht kann mir jemand helfen, meinen Fehler zu finden.jquery Anrufe an CakePHP 3 Controller
In CakePHP möchte ich die jquery Autocomplete verwenden, und wenn Benutzer eine Wertprüfung mit dem Controller auswählt, wenn ein neuer Wert in der Datenbank gespeichert werden soll oder nicht.
hier ist der Code für die Ansicht
<?php
echo $this->Form->input('Name', array(
'label' => 'Anbieter',
'empty' => true,
'required' => 'required',
'templates' => array(
'inputContainer' => '{{content}}',
),
'class' => 'select anbieter',
'id' => 'Anbieter'
));
und Skript
<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);
}
});
}
});
in-Controller Ich habe diese
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
}
}
dies nur Dummy-Code ist, so wenden Sie sich bitte sei nicht wählerisch ut it;)
mein Problem ist, wenn ich Code oben verwenden, werde ich einen Internal Server Error, aber wenn ich
ändernurl: '<?php echo Cake\Routing\Router::url(array('controller' => 'Anbieter', 'action' => 'addCreate')); ?>'
zu
url: '<?php echo Cake\Routing\Router::url(array('controller' => 'Anbieter', 'action' => 'add')); ?>',
alles funktioniert gut. .. aber das ist nicht was ich will, also was fehlt mir?
vielen dank advanced
l.b.
edit: Fehler toolbar.js: 90 GET http://localhost/anbieter/add-create 500 (Internal Server Error)
Wenn immer Fehler empfangen werden, posten Sie immer ** den _complete_ Fehler **, das heißt, einschließlich ** _full_ stacktrace ** (idealerweise kopiert aus den Protokollen, wo es in einer gut lesbaren Weise verfügbar ist), auch wenn das Problem könnte für Leute offensichtlich sein, die mit CakePHP vertraut sind! Zeigen/beschreiben Sie auch den richtigen Kontext, dh zeigen/markieren Sie den Code, der den Fehler auslöst, und erwähnen Sie immer Ihre _exact_ CakePHP-Version - danke! – ndm