It's for this very reason I keep championing the case to have ALL
source code on a web page to be presented in a plain text <textarea>!

And don't get me started on 'smart quotes'! ;-)

On Jan 16, 8:49 pm, clarkphp <[email protected]> wrote:
> Figured it out, with the help of a sharper pair of eyes than mine. It
> turns out that the original code did in fact come from a web page -
> the CakePHP manual (I copied, pasted, and edited the table name and
> other code). When I pasted into my text editor, I didn't notice that
> the quote marks were not the regular single quotes. All is good now.
>
> Thanks,
> Clark-
>
> On Jan 16, 7:45 am, clarkphp <[email protected]> wrote:
>
> > Hello Martin,
> > Thanks for your reply.  My files are all UTF-8.  And, no - never touch
> > MS Word - pasted in from browser.  Running Linux on dev and production
> > boxes.
> > I also looked at Firefox View Source.  The leading mysterious quote
> > mark is the upward curving opening quote, and the trailing one is the
> > downward curving closing quote mark - I'm looking for the character
> > numbers.  My source file is using the regular single quote found on
> > the keyboard (not the backtick).
>
> > See how these characters are inserted inside my vanilla-flavored
> > single-quoted string containing the model name, which the inflector is
> > converting to a table name?  All references to the model name in my
> > source files are using the regular single quote character.  It appears
> > that the undesired characters are being inserted before and after the
> > contents of that string by Cake.  I've traced with a debugger to find
> > where the transformation is happening, but am only close to it;
> > haven't nailed it yet.
>
> > One thing I've found is that with PHP error_reporting set high enough,
> > Cake generates a fair number of E_NOTICES regarding undefined
> > constants - the ticket system shows these being fixed on a case-by-
> > case basis. I think those errors are not necessarily related to this
> > problem.
>
> > Thanks again.  Does this generate any ideas from you or other readers?
> > - Clark
>
> > On Jan 16, 2:30 am, Martin Westin <[email protected]> wrote:
>
> > > Hi Clark,
> > > Looks to me like the thing you are missing is the small problem your
> > > source-file has with its quotes.
>
> > > Use of undefined constant â Organizationâ
> > > This suggests that your modelname is not in fact enclosed by single
> > > quotes but some other glyph that looks like it but really has another
> > > ASCII code. You may have pasted the line of code from a browser or
> > > (god forbid) Word and got the strange character in your file that way.
> > > If the quotes are not "real" quotes then PHP will interpret this as
> > > you trying to use a constant.
>
> > > While you are at it make sure the charset of the php file is not
> > > something strange.
>
> > > /Martin
>
> > > On Jan 16, 12:35 am, clarkphp <[email protected]> wrote:
>
> > > > Check out the extra quotes in the model name in the WHERE clause
> > > > below:
>
> > > > SELECT `Organization`.`name`, `Organization`.`description` FROM
> > > > `organizations` AS `Organization`   WHERE `‘Organization’`.`status` =
> > > > 'inactive'   ORDER BY `Organization`.`name` asc
>
> > > > I've used SimpleTest before, but am now beginning to use it in the
> > > > context of CakePHP's testing framework.  All test cases that involving
> > > > a model are failing because the model names are getting enclosed with
> > > > single quotes, which produces table names in database queries that of
> > > > course don't exist.  For example:
>
> > > > App::import('Model', 'Organization');
>
> > > > class OrganizationTestCase extends CakeTestCase
> > > > {
> > > >     public $useTable = 'organizations';
> > > >     public $fixtures = array('app.organization');
>
> > > >     public function testInactive()
> > > >     {
> > > >         $this->Organization = ClassRegistry::init('Organization');
>
> > > >         $result = $this->Organization->inactive(array('name',
> > > > 'description'));
> > > >         $expected = array(
> > > >            array('Organization' => array('name' => 'Test Company
> > > > Name', 'description'    => 'Mortgages'))
> > > >         );
> > > >         $this->assertEqual($result, $expected);
> > > >     }
>
> > > > }
>
> > > > results in a failed assertion and two E_NOTICES.
>
> > > > The failed assertion:
> > > > Equal expectation fails as [Boolean: false] does not match [Array: 1
> > > > items] at [/usr/local/apache2/vhosts/dev-obfuscated.com/app/tests/
> > > > cases/models/organization.test.php line 19]
>
> > > > The Errors:
> > > > Unexpected PHP error [Use of undefined constant â Organizationâ -
> > > > assumed 'â Organizationâ '] severity [E_NOTICE] in [/usr/local/
> > > > apache2/vhosts/dev-obfuscated.com/cake/libs/class_registry.php line
> > > > 134]
>
> > > > Unexpected PHP error [<span style = "color:Red;text-align:left"><b>SQL
> > > > Error:</b> 1054: Unknown column 'Ã¢â ¬Ë Organizationâ⠬⠢.status'
> > > > in 'where clause'</span>] severity [E_USER_WARNING] in [/usr/local/
> > > > apache2/vhosts/dev-obfuscated.com/cake/libs/model/datasources/
> > > > dbo_source.php line 514]
>
> > > > The use (or lack of) $useTable in the app/models or tests/cases/models
> > > > code makes little difference. If I leave out the $useTable statement,
> > > > the inflector creates this table name: 'organization's generating this
> > > > message:
> > > > Error:  Database table ‘organization’s for model Organization was not
> > > > found.
>
> > > > What obvious thing am I missing here?
> > > > Thanks!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to