Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7724695
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 1, 20262026-06-01T04:45:11+00:00 2026-06-01T04:45:11+00:00

I’m new to cakephp, but from what I understand all of the database interaction

  • 0

I’m new to cakephp, but from what I understand all of the database interaction should take place in the model.

I followed the official cakephp blog tutorial but they use the controller to save, edit, and delete posts instead of the model.
http://book.cakephp.org/2.0/en/tutorials-and-examples/blog/part-two.html

I’m attempting to split up the program so the model takes care of all of the DB interactions. I was able to get it to save new entries, however I can’t seem to figure out how to edit them.

Here’s the original action used by the official cakephp tutorial for editing posts.

public function edit($id = null) {
$this->Post->id = $id;
if ($this->request->is('get')) {
    $this->request->data = $this->Post->read();
} else {
    if ($this->Post->save($this->request->data)) {
        $this->Session->setFlash('Your post has been updated.');
        $this->redirect(array('action' => 'index'));
    } else {
        $this->Session->setFlash('Unable to update your post.');
    }
}
}

So, here’s my controller action. My controller name is ConcatenatesController and my model is Concatenate. I originally used this to test out concatenating strings.

 public function edit($id = null) {
    $this->Concatenate->id = $id;
    $this->Concatenate->editPost($id);
}               

…and the model that goes with it

 function editPost($id){
    if ($this->save($this->request->data)) {
        $this->Session->setFlash('Your post has been updated.');
        $this->redirect(array('action' => 'index'));
    } else {
        $this->Session->setFlash('Unable to update your post.');
        }
    }

I’m getting the following errors

Notice (8): Trying to get property of non-object [APP/Model/Concatenate.php, line 20] 
Fatal error: Call to a member function setFlash() on a non-object in /Applications/XAMPP/xamppfiles/htdocs/cake/app/Model/Concatenate.php on line 24

Line 20 refers to

if ($this->save($this->request->data)) {

and Line 24 is

  $this->Session->setFlash('Unable to update your post.');
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-01T04:45:13+00:00Added an answer on June 1, 2026 at 4:45 am

    The controller isn’t interacting with the database directly per-se, it’s calling a model to do it for it instead, which is what the point of having controller in the first place.

    System specific stuff like Session, Request, FileUpload etc is considered application logic and should be in the controller. The controller then govern how the application should interact with them and not model.

    Imagine for Session in PHP you are using $_SESSION, then you have an ApiController for a mobile application you are building but can’t possibly rely on $_SESSION since mobile app usually doesn’t send cookie, Model shouldn’t know or care how Session is managed, it’s the Controller responsibility to maintain user state and tell Model to do stuff relating to User.

    Another example: saving Post, it’s not the model responsibility to know which user is currently logged in, it’s the controller responsibility to tell Model which user is logged in, in cake case, by passing fields => array('user_id', $this->Auth->user('id')) when calling $this->User->save().

    The documentation is correct in which Controller is (by $this->ModelName->doStuff()) calling Model to do its job rather than “interacting” directly with the db.

    Please have a read at these articles, although they are talking about business logic and application logic, the illustration there should get you going 🙂

    Application Logic vs Business Logic

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a string like this: La Torre Eiffel paragonata all’Everest What PHP function
I have a text area in my form which accepts all possible characters from
I'm new to using the Perl treebuilder module for HTML parsing and can't figure
link Im having trouble converting the html entites into html characters, (&# 8217;) i
I want to count how many characters a certain string has in PHP, but
For some reason, after submitting a string like this Jack’s Spindle from a text
I am trying to understand how to use SyndicationItem to display feed which is
I want use html5's new tag to play a wav file (currently only supported
I have a French site that I want to parse, but am running into
I'm parsing an RSS feed that has an ’ in it. SimpleXML turns this

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.