# |
Jun 17th 2021, 13:30 |
dantedantas |
I am not sure how to do it, or what should be the best way. |
# |
Jun 17th 2021, 13:26 |
kevin.pfeifer |
but how should cakephp know that you now want to render your entity in your ajax function with that HTML? |
# |
Jun 17th 2021, 13:25 |
kevin.pfeifer |
yes that is present in your index.php |
# |
Jun 17th 2021, 13:25 |
kevin.pfeifer |
I never use AJAX functions like that because it is (in my opinion) too much data being sent via AJAX. I only send the data that is being “added/changed” and the HTML is being copied on the clientside inside the JS |
# |
Jun 17th 2021, 13:25 |
dantedantas |
This is how I show it now:' |
# |
Jun 17th 2021, 13:23 |
dantedantas |
Here is where I show the result. If I could send back a formated HTML code, could be better. |
# |
Jun 17th 2021, 13:23 |
kevin.pfeifer |
and where should cakephp get that html from? you only have an entity in that controller, not a rendered template |
# |
Jun 17th 2021, 13:21 |
dantedantas |
Could be better. A Html. |
# |
Jun 17th 2021, 13:21 |
kevin.pfeifer |
do you expect to get a formatted HTML back? |
# |
Jun 17th 2021, 13:20 |
dantedantas |
No. :) Maybe, could you have an example of how to format it? |
# |
Jun 17th 2021, 13:20 |
alamnaryab |
I am trying to see documentation how to capture request in middleware and append default language param if not available |
# |
Jun 17th 2021, 13:17 |
kevin.pfeifer |
yes, do you expect something different? |
# |
Jun 17th 2021, 13:16 |
dantedantas |
The result. |
# |
Jun 17th 2021, 13:16 |
dantedantas |
Is already. |
# |
Jun 17th 2021, 13:15 |
kevin.pfeifer |
|
# |
Jun 17th 2021, 13:14 |
kevin.pfeifer |
have you changed your AJAX request to GET? |
# |
Jun 17th 2021, 13:14 |
dantedantas |
Hi Kevin. Thank you for your feedback. It looks much better. :) The 'IF' condition still doesnt work. |
# |
Jun 17th 2021, 13:12 |
ndm |
I see, looks like they're supported in 4.next |
# |
Jun 17th 2021, 13:06 |
admad |
Maybe, a while back I updated the router classes to support brace style everywhere (and check for those first) |
# |
Jun 17th 2021, 13:05 |
ndm |
Maybe because brace style placeholders aren't supported, only the colon ones work. |
# |
Jun 17th 2021, 13:04 |
ndm |
@alamnaryab That is the expected behavior, the URL filter only persists the language parameter if there is one present in the request. You could add a default or inferred (from the request's `Accept-Language` header) language in the URL filter, or possibly the better solution, use a middleware to redirect to a URL with a language parameter being added to the path, so that you don't have one and the same URL serving different content. |
# |
Jun 17th 2021, 12:58 |
admad |
I was mistaken about not being able to use placeholder as scope :) There was probably some other reason why I didn't/couldn't use them for my i18n routes and misremembered. |
# |
Jun 17th 2021, 12:53 |
alamnaryab |
@ndm it is all working fine as long the URL has language param but without language param is says missing param |
# |
Jun 17th 2021, 12:22 |
ndm |
Then I misunderstood, I thought your problem was the other way around with 4.x, ie a string _not_ working. Converting the data to a string with `http_build_query()` should be fine, it's what happens internally too. |
# |
Jun 17th 2021, 12:20 |
alamnaryab |
@ndm This is working perfectly. You are the hero. :thumbsup: |
# |
Jun 17th 2021, 12:08 |
slackebot |
\Cake\Http\ServerRequest $request) { if ( $request->getParam('language') andand !isset($params['language']) ) { $params['language'] = $request->getParam('language'); } return $params; } );``` |
# |
Jun 17th 2021, 12:08 |
slackebot |
$patterns = ['language' => 'en|ar']; $builder ->connect('/', ['controller' => 'Clients', 'action' => 'index']) ->setPatterns($patterns); $builder ->connect('/:controller', ['action' => 'index']) ->setPatterns($patterns); $builder ->connect('/:controller/:action/*') ->setPatterns($patterns); }); \Cake\Routing\Router::addUrlFilter( function (array $params, |
# |
Jun 17th 2021, 12:08 |
slackebot |
'en|ar']; $routes ->connect('/', ['controller' => 'Users', 'action' => 'login']) ->setPatterns($patterns); $routes ->connect('/:controller', ['action' => 'index']) ->setPatterns($patterns); $routes ->connect('/:controller/:action/*', []) ->setPatterns($patterns); }); }); $routes->scope('/:language', function (RouteBuilder $builder) { |
# |
Jun 17th 2021, 12:08 |
ndm |
@alamnaryab Go from here. If you run into errors, don't jump to using other methods until you have a firm grasp on why things are failing and how the problem could be solved, otherwise you'll never get anywhere with it, as you're just jumping from one problem to the next. ```$routes->scope('/:language', function (RouteBuilder $routes) { $routes->prefix('Admin', function (RouteBuilder $routes) { $patterns = ['language' => |
# |
Jun 17th 2021, 12:06 |
alamnaryab |
I used that plugin still I am getting almost same errors I have attached my updated routes.php debugger/routes tab snapshot and error message |
# |
Jun 17th 2021, 11:58 |
k4t |
I hope there are no downsides of this |
# |
Jun 17th 2021, 11:58 |
k4t |
and it looks like this is the only solution for CakePHP 3.1.14 |
# |
Jun 17th 2021, 11:57 |
k4t |
for me it is only working when I convert my $data array into string |
# |
Jun 17th 2021, 11:49 |
ndm |
It works _despite_ doing that. I though that was what you were trying to do, as you've pointed to the `is_string()` check, and even mentioned using a string instead of an array? |
# |
Jun 17th 2021, 11:46 |
k4t |
it is workign for you becuase as $date parameter you passed string not an array |
# |
Jun 17th 2021, 11:40 |
kevin.pfeifer |
1. Your AJAX Function in your 2. screenshot uses POST and not GET as a Method 2. I was wrong, `->contain()` doesn’t work with `->get()` you need to specify it like that ```$this->Vieworg->get( $id, [ 'contain' => [ 'Viewadr' ], ] );``` |
# |
Jun 17th 2021, 11:35 |
alamnaryab |
I have not checked, let me see now |
# |
Jun 17th 2021, 11:35 |
dantedantas |
Hi Kevin, here you can see my ajaxAction. And you have also my Ajax-javascript function. I have 2 issues. The first is that I have no idea how to show/catch the result and show it on the other screen. The other issue is if I may have as a responsa an HTML code. I would like to format the result into a table and send it back. Thank you. |
# |
Jun 17th 2021, 11:35 |
alamnaryab |
I have not checked, let me see now |
# |
Jun 17th 2021, 11:34 |
alamnaryab |
there is no special routes, only default root and admin prefix |
# |
Jun 17th 2021, 11:33 |
slackebot |
function (RouteBuilder $routes) { $routes->fallbacks(DashedRoute::class); }); ``` |