# |
Jan 20th 2020, 13:20 |
slackebot |
'userModels' => ['Admin','Users','Students'], ], 'fields' => [ 'username' => 'username', 'password' => 'password', ], ]); // Load the authenticators, you want session first $authenticationService->loadAuthenticator('Authentication.Session'); // Configure form data check to pick username and password |
# |
Jan 20th 2020, 13:20 |
slackebot |
if (is_string($options)) { $query->find($options); } else { $query->find($finder, $options); } } $where = []; foreach ($conditions as $field => $value) { $field = $table->aliasField($field); if (is_array($value)) { $field = $field . ' IN'; } |
# |
Jan 20th 2020, 13:20 |
slackebot |
$where[$field] = $value; } if($query->where([$type => $where])->first() != null){ return $query->where([$type => $where])->first(); } } }``` #5. Open src/Application.php #6. Modify this code ``` $authenticationService->loadIdentifier('Authentication.Password', [ 'resolver' => [ 'className' => 'Authentication.AdminOrm', |
# |
Jan 20th 2020, 13:20 |
slackebot |
'userModels' => [], 'finder' => 'all', ];``` #4. Modify this code ``` public function find(array $conditions, $type = self::TYPE_AND) { foreach($this->_config['userModels'] as $configUserModels){ $table = $this->getTableLocator()->get($configUserModels); $query = $table->query(); $finders = (array)$this->_config['finder']; foreach ($finders as $finder => $options) { |
# |
Jan 20th 2020, 13:20 |
mr.kusmadi |
Hai @ricksaccous @conehead I am glad, your suggestion was successful *Hope it is useful for others* *How do you create multiple logins with multiple tables on cakephp 4.x?* #1. I have followed the guidelines at https://book.cakephp.org/4/en/tutorials-and-examples/cms/authentication.html #2. Open app/vendor/cakephp/authentication/src/Identifier/Resolver/OrmResolver.php #3. Modify this code ``` protected $_defaultConfig = [ |
# |
Jan 20th 2020, 12:33 |
barlas |
So, remove the plugins, install cake 4, and then re-add them if required. |
# |
Jan 20th 2020, 12:32 |
neon1024 |
You’ll need to use the cake 4 compatible versions of the plugins, or remove ones which do not yet support cake 4 |
# |
Jan 20th 2020, 12:31 |
barlas |
Any solutions? :) |
# |
Jan 20th 2020, 12:30 |
neon1024 |
Yes, that’s an issue you’ll have. |
# |
Jan 20th 2020, 12:27 |
barlas |
Composer isn't letting me upgrade to cake 4, because these require cake3, and not allowing to upgrade these, becausue the next version require cake 4 |
# |
Jan 20th 2020, 12:26 |
barlas |
I am trying to upgrade my cake 3 app to cake 4, but getting some issues when trying to update the dependencies, like migrations, bake, debug_kit etc |
# |
Jan 20th 2020, 12:25 |
barlas |
Hi |
# |
Jan 20th 2020, 11:59 |
challgren |
Other than that the controller was the default baked one, the only file changes was the Application.php::middleware() and the json that was being sent |
# |
Jan 20th 2020, 11:52 |
challgren |
And then your request data should be {“name”: “England”} |
# |
Jan 20th 2020, 11:51 |
challgren |
@humang33k figured it out https://gist.github.com/challgren/b9d8facfe4004ff2d445bbfa167cf6a7 |
# |
Jan 20th 2020, 11:50 |
challgren |
curl -XPOST -H ‘Accept: application/json’ -H ‘Content-type: application/json’ -d ‘{“name”: “England”}’ ’http://localhost:8080/countries/add' |
# |
Jan 20th 2020, 11:21 |
challgren |
The deprecation tells you what wrong |
# |
Jan 20th 2020, 11:18 |
HumanG33k |
https://paste.debian.net/1126781/ @challgren with your request |
# |
Jan 20th 2020, 11:07 |
challgren |
curl -XPOST -H ‘Accept: application/json’ -H “Content-type: application/json” -d ‘{“country”: {“name”: “England”}}’ ’https://ensd3uvg3k4ui.x.pipedream.net/' |
# |
Jan 20th 2020, 11:05 |
challgren |
Data comes across just fine |
# |
Jan 20th 2020, 11:05 |
challgren |
https://requestbin.com/r/ensd3uvg3k4ui/1Wem9MrblAFjfL6hA5fudBXXEWC |
# |
Jan 20th 2020, 11:04 |
challgren |
curl -XPOST -H ‘Accept: application/json’ -H “Content-type: application/json” -d ‘{ “country”: { “name”: “England” } }’ ’https://ensd3uvg3k4ui.x.pipedream.net/' |
# |
Jan 20th 2020, 11:03 |
HumanG33k |
@challgren with the two header there is an exeption |
# |
Jan 20th 2020, 10:59 |
challgren |
Plus the json your sending isn’t even properly formatted |
# |
Jan 20th 2020, 10:57 |
challgren |
curl -i -H “Accept: application/json” -H “Content-Type: application.json” -X POST http://0.0.0.0:8765/countries.json -d “{‘country’: {‘name’: ‘England’}}“; |
# |
Jan 20th 2020, 10:56 |
challgren |
Ok well you just changed the accepts you need a Content-Type so cake knows you are sending json and not text/plain |
# |
Jan 20th 2020, 10:56 |
HumanG33k |
but nothing change @challgren |
# |
Jan 20th 2020, 10:45 |
HumanG33k |
of json |
# |
Jan 20th 2020, 10:45 |
HumanG33k |
i fix typo |
# |
Jan 20th 2020, 10:43 |
challgren |
You should also be sending Content-Type: application/json in your headers |
# |
Jan 20th 2020, 10:36 |
challgren |
https://book.cakephp.org/4/en/controllers/middleware.html#body-parser-middleware |
# |
Jan 20th 2020, 10:36 |
challgren |
Or you can use the Body Parser Middleware |
# |
Jan 20th 2020, 10:35 |
challgren |
https://www.php.net/manual/en/function.json-decode.php has the arguments listed |
# |
Jan 20th 2020, 10:34 |
challgren |
If you look at the code it calls the first argument of the input function and then passed the body as argument 1 and the rest of the arguments as 2,3,4, etc |
# |
Jan 20th 2020, 10:32 |
challgren |
try $this->request->input(‘json_decode’, true); |
# |
Jan 20th 2020, 10:30 |
HumanG33k |
and its look like whatever i test even without option it s look like the $jsonData is null |
# |
Jan 20th 2020, 10:26 |
HumanG33k |
? |
# |
Jan 20th 2020, 10:26 |
HumanG33k |
["as" => 'array'] |
# |
Jan 20th 2020, 10:25 |
HumanG33k |
@challgren there is no more information than in the book in the source code. so i not really know how to use the "as array" option for input('json_decode') |
# |
Jan 20th 2020, 10:12 |
HumanG33k |
ok maybe it can be a good thing to fix it. No doc == less user andand more requests here (i guess) |
# |
Jan 20th 2020, 10:08 |
challgren |
Which is why the api docs havent been updated |