Empfehlungen: Erweiterte Suche

$useTable=false

Datenbankobjekte strukturieren und validieren

$useTable=false

Beitragvon schrist » Do 10. Jun 2010, 22:03

Hallo,

folgendes Problem habe ich:
In meinem Menu-Model habe ich den Eintrag
Code: Alles auswählen
var $useTable = false;

Im Controller setze ich die Werte über
Code: Alles auswählen
    $this->set('mice', $mice);
        $this->menus[] = array(
        'name' => 'mice',
        'selected' => 'mice'
        );
 

Im view bekomme ich nun die Fehlermeldung,
Warning (512):
$sql = "mice"
$error = "1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mice' at line 1"
Query: mice


Ich bin noch Anfänger in CakePHP und für mich sieht das so aus, als ob
Code: Alles auswählen
var $useTable = false;
nicht akzeptiert würde. Kann mir jemand von Euch sagen, woran das liegt? Oder liegt der Fehler ganz woanders?

Danke schon mal für jede Hilfe,

Christian
schrist
 
Beiträge: 6
Registriert: Do 10. Jun 2010, 21:56

Re: $useTable=false

Beitragvon Jörg » Sa 12. Jun 2010, 17:15

Hi Christian,

das muss muss in der vorherigen Zeile sein, bevor du die Variable $mice ans View übergibst.

Poste doch bitte einmal deinen Controller und dein dazugehöriges Model.
Jörg
 
Beiträge: 105
Registriert: Di 13. Mai 2008, 13:45
Wohnort: Bremen
CakePHP-Version: 2.0.3, 1.3.x
OS: Win7/Ubuntu

Re: $useTable=false

Beitragvon schrist » So 13. Jun 2010, 12:15

Hallo Jörg,

danke schon mal für Deine Hilfe. Hier ist mein Menu-Model:
Code: Alles auswählen

<?php
class Menu extends AppModel {
    var $useTable = false;
    var $name = 'Menu';


    function main ($selected = 'home') {
        return array(
            'divClass' => 'menu',
            'ulClass' => 'menu',
            'tabs' => array(
                array(
                'controller' => 'births',
                'action' => 'index',
                'params' => '',
                'aClass' => '',
                'liClass' => $selected == 'births' ? 'active' : '',
                'text' => 'Births',
                $selected == 'births' ? '<strong>' : '',
                ),
                array(
                'controller' => 'mice',
                'action' => 'index',
                'params' => '',
                'aClass' => '',
                'liClass' => $selected == 'mice' ? 'active' : '',
                'text' => 'Mice'
                ),
                array(
                'controller' => 'lines',
                'action' => 'index',
                'params' => '',
                'aClass' =>  '',
                'liClass' => $selected == 'lines' ? 'active' :'',
                'text' => 'Lines'
                ),
        )
        );
    }
}
?>


und hier mein menus-controller.php:
Code: Alles auswählen

<?php
class MenusController extends AppController {
    var $name = 'Menus';
    function menus($menus) {
        $output = array();
        foreach ($menus as $menu):
        $output[] = $this->Menu->{$menu['name']}($menu['selected']);
        endforeach;
        return $output;
    }
}
?>
 


Ich hoffe, das hilft weiter.

Viele Grüße und einen schönen Sonntag,

Christian
schrist
 
Beiträge: 6
Registriert: Do 10. Jun 2010, 21:56

Re: $useTable=false

Beitragvon schrist » Mo 14. Jun 2010, 20:27

Hallo,

das Problem hat sich endlich gelöst. useTable funktionierte anscheinend richtig, aber ich hatte die beforeFilter-Methode nicht an der richtigen Stelle eingebaut.
Trotzdem danke für Eure Hilfe,

Christian
schrist
 
Beiträge: 6
Registriert: Do 10. Jun 2010, 21:56

Re: $useTable=false

Beitragvon Jörg » Di 15. Jun 2010, 07:02

Hallo Christian,

das hört und liest man doch gerne. :-)

Weiterhin viel Erfolg mit CakePHP.
Jörg
 
Beiträge: 105
Registriert: Di 13. Mai 2008, 13:45
Wohnort: Bremen
CakePHP-Version: 2.0.3, 1.3.x
OS: Win7/Ubuntu


Zurück zu Models

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron