# |
May 20th 2021, 10:58 |
neon1024 |
I am now mocking the service methods to return the right data and manually writing to the session, whereas I could attach the Session Auth to the Service, etc |
# |
May 20th 2021, 10:57 |
neon1024 |
Yeah, it seems that trying to mock the service leads down a rather large rabbit hole |
# |
May 20th 2021, 09:33 |
steinkel |
I usually go for integration tests, injecting the desired user in session |
# |
May 20th 2021, 09:08 |
neon1024 |
I have created private methods to mock the services and append them to my requests |
# |
May 20th 2021, 08:59 |
neon1024 |
Anyone know if there is a section like this for the Authentication / Authorization plugins? https://book.cakephp.org/4/en/development/testing.html#testing-actions-that-require-authentication |
# |
May 19th 2021, 23:03 |
ndm |
https://book.cakephp.org/4/en/controllers/middleware.html#body-parser-middleware |
# |
May 19th 2021, 23:03 |
ndm |
I'll shoot in the dark... good luck to all the hedgehogs out there. |
# |
May 19th 2021, 23:00 |
slackebot |
<tyler.adam.lazenby> |
# |
May 19th 2021, 23:00 |
tyler.adam.lazenby |
I know it is sending it |
# |
May 19th 2021, 22:59 |
slackebot |
<tyler.adam.lazenby> |
# |
May 19th 2021, 22:58 |
tyler.adam.lazenby |
Why isn't cakephp grabbing my posted data when I use fetch in JS |
# |
May 19th 2021, 20:05 |
etibor |
but first it wouldb be good if i can make a simple query |
# |
May 19th 2021, 20:04 |
etibor |
that will be my next step |
# |
May 19th 2021, 19:49 |
slackebot |
$appWhitelist = $this->paginate( $query ); $this->set( compact( 'appWhitelist' ) );``` |
# |
May 19th 2021, 19:48 |
kevin.pfeifer |
and i use it like that in all my controllers which have a search form ``` $query = $this->AppWhitelist->find()->contain( [ 'StaffMembers' ] ); $query = $this->Search->filter( $query, [ 'OR' => [ 'AppWhitelist.device_ident LIKE' => '%$search%', 'StaffMembers.firstname LIKE' => '%$search%', 'StaffMembers.lastname LIKE' => '%$search%', ] ] ); |
# |
May 19th 2021, 19:47 |
slackebot |
<kevin.pfeifer> |
# |
May 19th 2021, 19:47 |
kevin.pfeifer |
i personally have just 1 Search Component which looks like that |
# |
May 19th 2021, 19:46 |
kevin.pfeifer |
because you can pre-define queries in "Custom Finder Methods" so you don't need to built the whole query over and over again https://book.cakephp.org/4/en/orm/retrieving-data-and-resultsets.html#custom-finder-methods |
# |
May 19th 2021, 19:45 |
kevin.pfeifer |
or what is the exact thing you want to re-use in multiple controllers |
# |
May 19th 2021, 19:45 |
kevin.pfeifer |
since you seem to want to do something with a model in your component: Do you want to not duplicate queries in mutilple controllers? aka. ->where()->orderby() etc. |
# |
May 19th 2021, 19:42 |
kevin.pfeifer |
when calling a /documents url? |
# |
May 19th 2021, 19:42 |
etibor |
but shows Notice: Notice (1024): Undefined property: |
# |
May 19th 2021, 19:42 |
etibor |
i tried what you are saying: $documents = $this->getController()->Documents; |
# |
May 19th 2021, 19:38 |
etibor |
i am trying to move my controller's function into the component to reuse it different controllers |
# |
May 19th 2021, 19:37 |
etibor |
thank you @khalil |
# |
May 19th 2021, 18:50 |
khalil |
Like @kevin.pfeifer said, I think if you tell us what you're trying to achieve with this component, there might be better / easier ways to achieve this |
# |
May 19th 2021, 18:48 |
kevin.pfeifer |
well thats what i want to warn you too: depending on which controller uses your component it could be, that sometimes `$this->getController()->Documents` works and sometimes it doesnt |
# |
May 19th 2021, 18:47 |
khalil |
If you want to access whatever controller the component is loaded in you can do this: `$controller = $this->getController();` |
# |
May 19th 2021, 18:47 |
etibor |
okey thank you for everyone i am going to try this |
# |
May 19th 2021, 18:46 |
khalil |
No, it's `$documents = $this->getController()->Documents` |
# |
May 19th 2021, 18:46 |
kevin.pfeifer |
first of all - what do you want to achieve with that component |
# |
May 19th 2021, 18:46 |
etibor |
this also does not work: $this->Documents = ClassRegistry::init('Documents'); |
# |
May 19th 2021, 18:45 |
khalil |
in a component you need to use `$this->getController()->Documents` like @greg138 mentioned |
# |
May 19th 2021, 18:45 |
kevin.pfeifer |
components are meant to contain functions which are re-used in multiple controllers |
# |
May 19th 2021, 18:44 |
etibor |
yes i am try to understand the component concept |
# |
May 19th 2021, 18:41 |
khalil |
You're using it in a component? |
# |
May 19th 2021, 18:41 |
etibor |
i did the loadModel as normally in other Controller, but that not helped |
# |
May 19th 2021, 18:35 |
greg138 |
Are you still in your component? If so, again, it would be `$this->getController()->Documents` |
# |
May 19th 2021, 18:35 |
khalil |
@etibor you're using that in a controller it seems, you can load the model by doing this: `$this->loadModel("Documents");` |
# |
May 19th 2021, 18:34 |
steinkel |
`$this->loadModel('Documents');` |
# |
May 19th 2021, 18:30 |
etibor |
i see that the normal Model form like : $this->Documents can not be used insted i have to have like this: $documents_table = TableRegistry::getTableLocator()->get('Documents'); Is there an easier form? Now i have to rewrite all of my queries |