I once come across this just needed a recursive function in a view, so
in order to use the helpers I just sent them as params:
function getLink($x, &$html) {
return $html->link($x, '#');
}
getLink('xxx', &$html);
if you use php5 > I think this "&" isn't necessary.
On Mon, Dec 20, 2010 at 10:08 AM, ojonam <[email protected]> wrote:
> Hi all, thanks for the replies.
>
> @Ryan, Miles J: thanks, I didn't know the intricacies of the scope of
> "this" in PHP. I'll make sure to check it out on the net.
> @others: as mentioned above, I'm using this getLink function as a one
> time function in a specific view. Creating a helper or defining a
> function by extending View is IMO just overkill.
>
> Cheers,
> ojonam
>
> On Dec 18, 1:22 pm, "[email protected]"
> <[email protected]> wrote:
>> Why not just extend the View Class itself and add in all the
>> functionality to that class, then you don't clutter up the global
>> namespace and you keep your view files tidy as well then.
>>
>> create /app/views/app.php
>> <?php
>> class AppView extends View{
>>
>> function getLink($x){
>> return $this->Html->link($x,"#".$x);
>> }
>> ... add any other methods}
>>
>> ?>
>>
>> Then in app_controller.php add:
>>
>> var $view = 'app';
>> // or //
>> public $view = 'app';
>>
>> Your view.ctp file then calls echo $this->getLink($x);
>>
>> Just my 2 cents on following OOP convention.
>>
>> Regards
>> Simon
>>
>> On Dec 17, 10:41 am, ojonam <[email protected]> wrote:
>>
>> > Hello all,
>>
>> > I am defining functions in views which use functionality from helpers.
>> > The code in my view is as follows:
>>
>> > <?php
>> > function getLink($x){
>> > return $this->Html->link($x,"#".$x);
>>
>> > }
>>
>> > echo getLink($x);
>> > ?>
>>
>> > when I run the view, I get the following message:
>> > Fatal error: Using $this when not in object context in view.ctp
>>
>> > However, doing simply the following works:
>>
>> > <?php
>> > echo $this->Html->link($x,"#".$x);
>> > ?>
>>
>> > What is the scoping problem here?
>>
>> > Thanks,
>> > ojonam
>
> Check out the new CakePHP Questions site http://cakeqs.org and help others
> with their CakePHP related questions.
>
> 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
>
--
Thanks,
Bogdan Iulian Bursuc
Check out the new CakePHP Questions site http://cakeqs.org and help others with
their CakePHP related questions.
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