> Do you really have a table named blogs? If you are trying to add the > users and posts you have told blog to use them.
No, two completely separate sets of MVC; I started to work through the tutorial to confirm that there wasn't a problem with the code I typed in from a book in the first instance by using the tutorial in the second instance...I changed the tutorial table to 'blogs' from 'posts' because I was already using 'posts'. I don't see anything in the code posted regarding the 'Blog' model that says that it's using 'posts' or 'users' and it appears to be self- contained to me. Am I missing something? > Do you really have a table named blogs? Yes. On Nov 26, 2:31 pm, thatsgreat2345 <[EMAIL PROTECTED]> wrote: > You do not use print_r in your controller unless you have turned off > the rendering of the view. Use debug and it will print it out the > variable at the top. > Do you really have a table named blogs? If you are trying to add the > users and posts you have told blog to use them. > Add var $uses = array('User','Blog'); to your controller. That is if > you really have a table named blogs which baffles me. > > On Nov 26, 10:03 am, austin <[EMAIL PROTECTED]> wrote: > > > can you point out which is line 7 of your controller, please? > > > austin > > > On Nov 23, 11:33 pm, "James.Diss" <[EMAIL PROTECTED]> wrote: > > > > Okay, well this gets weirder. > > > > I've started on the blog tutorial on the website, and I'm working > > > through is successfully apart from validate isn't appearing in the > > > model! > > > > Just to check I threw in a var into the model arbitrarily, and tried > > > to refer to it, but it says that it's not defined. I have to say that > > > it's looking like my models are being completely ignored and it's just > > > using AppModel. This is odd. > > > > Model; > > > class Blog extends AppModel { > > > var $name = 'Blog'; > > > > var $validate = array( > > > 'title' => array( > > > 'rule' => array('minLength', 1) > > > ), > > > 'body' => array( > > > 'rule' => array('minLength', 1) > > > ) > > > ); > > > > var $testingValue = "This is testing"; > > > > } > > > > Controller; > > > > class BlogsController extends AppController { > > > var $name = 'Blogs'; > > > > function index() { > > > print_r($this->Blog->testingValue); > > > $this->set('blogs', $this->Blog->find('all')); > > > } > > > > function view($id=null) { > > > $this->Blog->id = $id; > > > $this->set('blog', $this->Blog->read()); > > > } > > > > function add() { > > > if (!empty($this->data)) { > > > if ($this->Blog->save($this->data)) { > > > $this->flash('Your blog has been saved.', > > > '/blogs'); > > > } > > > } > > > } > > > > } > > > > Error; > > > > Notice (8): Undefined property: AppModel::$testingValue [APP/ > > > controllers/blogs_controller.php, line 7] > > > BlogsController::index() - APP/controllers/blogs_controller.php, line > > > 7 > > > Object::dispatchMethod() - CORE/cake/libs/object.php, line 114 > > > Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 259 > > > Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 213 > > > [main] - APP/webroot/index.php, line 90 > > > > Could this be down to permissions on the server? > > > > On Nov 23, 8:10 pm, "James.Diss" <[EMAIL PROTECTED]> wrote: > > > > > controllers; > > > > > users_controller; > > > > > class UsersController extends AppController { > > > > var $name = 'Users'; > > > > var $scaffold; > > > > > } > > > > > posts_controller; > > > > > class PostsController extends AppController { > > > > var $name = 'Posts'; > > > > var $scaffold; > > > > > } > > > > > 'hitting' the controllers means using the url.....http://<url>/posts > > > > or http://<url>/users > > > > > As for using Bake...at the moment I'm just working with a couple of > > > > models and controllers, surely throwing views into the mix is going to > > > > complicate the problem I had, which isn't regarding speed or getting > > > > to grips with how this works (I have ten years of PHP and 2 years of > > > > Java) but being vaguely confused how a small 'unit test' of how cake > > > > is supposed to operate is failing so fundamentally. What is this, > > > > fifteen lines of application code? > > > > > Anyhow, thanks for the debug tip; I can see from the resulting dump > > > > of the object that the relationships aren't working:- > > > > > [belongsTo] => Array > > > > ( > > > > ) > > > > > [hasOne] => Array > > > > ( > > > > ) > > > > > [hasMany] => Array > > > > ( > > > > ) > > > > > [hasAndBelongsToMany] => Array > > > > ( > > > > ) > > > > > On Nov 22, 7:33 pm, "php.baker" <[EMAIL PROTECTED]> wrote: > > > > > > I very much doubt that the problem relates to php and/or apache. > > > > > Please post your controller classes.... Also, what url did u use to > > > > > "hit the post > > > > > controller"? > > > > > > As far as debugging goes... Set debug to 3 (in .../config/core.php) > > > > > and you should be able to see very quickly if your models are > > > > > linked.http://book.cakephp.org/view/155/Debugging > > > > > > I would recommend you try using the bake console. Bake your models, > > > > > controllers, and views, and then look for differences between your > > > > > code and the code generated by bake. Bake is a great way for beginners > > > > > and experts to get apps going quickly(imho). > > > > > > On Nov 22, 2:36 pm, "James.Diss" <[EMAIL PROTECTED]> wrote: > > > > > > > I actually tried this first in an effort to get it working. > > > > > > > Currently the model for 'Post' looks like; > > > > > > > // app/models/Post.php > > > > > > class Post extends AppModel { > > > > > > var $name = 'Post'; > > > > > > var $validate = array(); > > > > > > var $belongsTo = array('User'=>array > > > > > > ('className'=>'User','foreignKey'=>'user_id')); > > > > > > > } > > > > > > > The model for 'User' looks like; > > > > > > > // app/models/User.php > > > > > > class User extends AppModel { > > > > > > var $name = 'User'; > > > > > > var $validate = array(); > > > > > > var $hasMany = array('Post'); > > > > > > > } > > > > > > > The thing is that I suspect that I'm keeping to the conventions with > > > > > > the following DDLs; > > > > > > > CREATE TABLE `users` ( > > > > > > `id` int(11) unsigned NOT NULL auto_increment, > > > > > > `name` varchar(100) default NULL, > > > > > > `email` varchar(150) default NULL, > > > > > > `firstname` varchar(60) default NULL, > > > > > > `lastname` varchar(60) default NULL, > > > > > > PRIMARY KEY (`id`) > > > > > > ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; > > > > > > > CREATE TABLE `posts` ( > > > > > > `id` int(11) unsigned NOT NULL auto_increment, > > > > > > `name` varchar(255) default NULL, > > > > > > `date` datetime default NULL, > > > > > > `content` text, > > > > > > `user_id` int(11) default NULL, > > > > > > PRIMARY KEY (`id`), > > > > > > KEY `user_id` (`user_id`) > > > > > > ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; > > > > > > > (before anyone points out the index 'user_id' after the primary key, > > > > > > it's not that, I checked. I would have been disappointed if an > > > > > > index > > > > > > threw things out of kilter, though) > > > > > > > At this moment I'm leaning towards something being wrong with the > > > > > > install, and I'm humble enough to think it's PHP/Apache2. Is there > > > > > > any configuration in either of those can stop associations being > > > > > > made? > > > > > > (Although they're both as vanilla as possible for deploying code on > > > > > > live servers) > > > > > > > TIA > > > > > > > On Nov 22, 3:42 pm, Rob <[EMAIL PROTECTED]> wrote: > > > > > > > > You probably want to add the foreigh_key to your hasMany and > > > > > > > belongsTo, especially if they don't follow the cake conventions. > > > > > > > > In my models, I have ID columns like 'user_id', and the > > > > > > > foreign_key is > > > > > > > typically the same name, so for instance in my Users to Groups > > > > > > > relationship I have something like: > > > > > > > > // Users model ... > > > > > > > var $hasMany = array( > > > > > > > 'UserGroup' => array( > > > > > > > 'className' => 'UserGroup', > > > > > > > 'foreignKey' => 'user_id', > > > > > > > 'limit' => '5', > > > > > > > 'dependent' => true > > > > > > > ) > > > > > > > ); > > > > > > > > // Link to groups > > > > > > > var $hasAndBelongsToMany = array( > > > > > > > 'Group' => > > > > > > > array( > > > > > > > 'className' => 'Group', > > > > > > > 'joinTable' => 'user_groups', > > > > > > > 'foreignKey' => 'user_id', > > > > > > > 'associationForeignKey' => 'group_id', > > > > > > > 'conditions' => '', > > > > > > > 'order' => '', > > > > > > > 'limit' => '', > > > > > > > 'unique' => true, > > > > > > > 'finderQuery' => '', > > > > > > > 'deleteQuery' => '', > > > > > > > 'insertQuery' => '' > > > > > > > ) > > > > > > > ); > > > > > > > > // Groups model > > > > > > > var $hasMany = array( > > > > > > > 'UserGroup' => array( > > > > > > > 'className' => 'UserGroup', > > > > > > > 'foreignKey' => 'group_id', > > > > > > > 'limit' => '5', > > > > > > > 'dependent' => true > > > > > > > ) > > > > > > > ); > > > > > > > > // Link to users > > ... > > read more » --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---