I have noted that BasicAuth does no longer works by simply uncomented //->check in Frontend.php
It seems like now it requires a Model...
what are the requirements for that model? how do I create it?
And how do I know use BasicAuth?
Thanks
$auth->setModel('AnyModel','user_field','password_field');
$auth->check();
This should work. The allow('demo','demo') attempt to pass on a Array-based model with specified user and there seems to be some bug in 4.2.1.
Added: https://github.com/atk4/atk4/issues/67
Related
I've got a question in drupal. I have two filters. The values of the 2nd filter depends on what value was chosen in the first filter.
Example.
First filter values : Lakers,Clippers
Second filter values : if Lakers was chosen = KOBE,GASOL
if Clippers was chosen = PAUL,GRIFFIN .
Is there any module that supports this? Or do I have to code this? If I do is there any reference or guide that I could read and follow?
THANKS!
Yes there is
Drupal has a module called hierarchical select.
check this out
https://drupal.org/project/hierarchical_select.
Hope this helps you.
Don't use hierachical select. It is chock full of bugs and since the maintainer went to work for Acquia, he no longer pays any attention to it. You'll have to write some code to make this work using contextual filters.
sorry i was new here so this problem maybe simple.
anyone knows how to check variable content?
like xx($a);
then page shows all relate information about $a. Is CakePHP allowed to do that?
i setup a kit on my cakephp
You might be looking for either var_dump() or print_r()
You can use PHP built-in functions like
var_dump() - displays structured information about variable
print_r() - the same, but preformatted with some differences
get_defined_vars() - returns array with all defined variables
Or use true CakePHP-way
Debugger::dump() - It will print out all properties and methods (if any) of the supplied variable
For more convenience you may use CakePHP Debug Kit plugin, which provides nice toolbar and some useful tools for your purpose.
i use cakephp and i am beginner
i use
$this->requestElement()
in
default.ctp
file but i face error.
but when use
$this->element()
my problem solved.
i face question that what is difference between $this->requestElement() and $this->element();
when i use requestElement() and when i use element() ?
thanks for help.
requestElement is outdated/deprecated (was used prior to 1.3).
you should now use element()
I'm not sure where you've found the method requestElement() but I can't find it in the API documentation. If the method ever existed it's likely been deprecated in later versions of Cake.
Or did you mean requestAction()?
You probably mean renderElement instead of requestElement. renderElement was deprecated in CakePHP 1.2, and has been removed in later versions.
I'm trying to make a reusable component (a weekday dropdown box, simple as pie) and am following the advice in http://book.cakephp.org/view/1081/Elements.
According to that page, I should make a blah.ctp file in app/views/elements, and it will be magically accessible in my view code as $this->element('blah').
So I did it. I'm passing the form and field name to my element in the view code:
$this->element(
'weekday_input',
array('form'=>$this->Form, 'fieldname'=>'weekday')
);
Earlier I created a form using $this->Form->create, so I figured I need to pass it to the element explicitly.
And my element code, in weekday_input.ctp:
echo $form->input(
$fieldname,
array(
'options',
array('Sunday'=>'Sunday',...,'Saturday'=>'Saturday')
)
);
(Weekdays in between omitted for brevity.)
Am I using $this->element properly? Is there something more clean available?
You don't have to pass the Form object. Form, Html and other helpers are available in elements (just as in view). Whether or not you want to pass fieldname depends: Do you need to change it?
An element is a bit too simple I expect. Also it is not very testable. Would focus on Helpers, which is a more advanced way of developing this. But there is another solution I would prefer even more:
For this kind of issues it might be more appropriate to extend the formhelper itself. You can see a simple example here:
http://blog.nlware.com/2012/02/07/cakephp-2-0-how-to-extend-the-formhelper/
A full example can be found for example here:
https://github.com/slywalker/cakephp-plugin-boost_cake/blob/master/View/Helper/BoostCakeFormHelper.php
As you asked for a clean solution think about creating a plugin (or check out existing plugins). That will separate the code out of your project more clean. And it will be available for re-use without much issues.
you can find all files needed for a plugin in the same project:
https://github.com/slywalker/cakephp-plugin-boost_cake
And the documentation here:
http://book.cakephp.org/2.0/en/plugins.html
I use CakePHP 1.3.9 but I can't use other Models in a Controller.
I use $this->loadModel('ModelName); and $this->ModelName->find('all') - always empty.
The variable $uses also doesn't work.
Why is it not working for me?
I used i18n and must set $locale...
Do you mean the data set is empty? If the model is not loaded, you shouldn't be able to call $this->ModelName->find() as $this->ModelName would be null. Does it throw an error? Your usage is correct, as stated in the manual : http://book.cakephp.org/view/992/loadModel
You can also do
App::import('Model', 'ModelName');
$model = new Model();
But I'm guessing that your current resultset is returning empty rather than the model itself not being set.
Have you tried looking at what $this->ModelName actually contains? Do the following and post it here
pr($this->ModelName)
It's considered bad practice to put (un-associated) models in your $uses array.
Depending what you are trying to do, you may be able to make use of containable behaviour.
$this->User->Post->find('all');
If not, you should be able to use loadModel:
$this->loadModel('Article');
$recentArticles = $this->Article->find('all', array('limit' => 5));
To quote Cake:
The loadModel function comes handy when you need to use a model which is not the controller's default model or its associated model.
JohnP and Ross are correct. Controller::loadModel() is clearly working and not your problem if pr($this->ModelName) is working for you.
As they mentioned, you're probably having trouble because the data simply isn't in the database. Or maybe there's something wrong with your query. Have you tried checking the query that's produced by CakePHP and trying to query the database directly through the MySQL command line (assuming you're using MySQL)?
Or is there any chance you've overloaded the Model::find() method?