# |
May 3rd 2019, 08:27 |
kgb.acct.personal |
Spec want me to use `?p=1` instead of `?page=1` |
# |
May 3rd 2019, 08:26 |
neon1024 |
So probably just change the config, although I’m not sure why you’d want to change it |
# |
May 3rd 2019, 08:26 |
neon1024 |
https://github.com/cakephp/cakephp/blob/master/src/Controller/Component/PaginatorComponent.php#L286 |
# |
May 3rd 2019, 08:24 |
kgb.acct.personal |
Hi. How can I use other query string instead of `?page=` when paginating? |
# |
May 3rd 2019, 08:23 |
neon1024 |
Morning everyone, happy Friday :tada: |
# |
May 3rd 2019, 06:48 |
admad |
using `UsersRepository::class` that is instead of `'App.Users'` |
# |
May 3rd 2019, 06:47 |
admad |
@maymeow the latter makes refactoring easier if required in future |
# |
May 3rd 2019, 06:42 |
maymeow |
Business logic ``` $this->loadRepository('App.Users'); ... $this->getRepository()->Users->doSomething(); ``` vs ``` repository(UsersRepository::class)->doSomething(); ``` What do you think? |
# |
May 3rd 2019, 02:48 |
hollistergraham123 |
Nvm |
# |
May 3rd 2019, 02:37 |
hollistergraham123 |
Can I not override a behaviors function when extending it |
# |
May 3rd 2019, 01:16 |
daniel.upshaw |
Since it is creating a tree of the `tests` records |
# |
May 3rd 2019, 01:14 |
daniel.upshaw |
Why not do it this way though? ```CREATE TABLE `tests` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `parent_id` int(11) unsigned NOT NULL, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;``` |
# |
May 3rd 2019, 01:12 |
daniel.upshaw |
And also how you name the foreign keys.. but it looks like you've done that in your table |
# |
May 3rd 2019, 01:12 |
daniel.upshaw |
The trick may be in setting up your foreign key relationships |
# |
May 3rd 2019, 01:11 |
daniel.upshaw |
And you can still use your concatenated keys like normal, but they just aren't primary for that table.. they should still act the same way, but instead I think you would use both concatenated as a `UNIQUE` key |
# |
May 3rd 2019, 01:10 |
daniel.upshaw |
So the safest way I've found is to use an `id` field as your primary |
# |
May 3rd 2019, 01:10 |
daniel.upshaw |
And, it might not support it yet actually! Not sure how closely one has to follow a certain convention |
# |
May 3rd 2019, 01:09 |
daniel.upshaw |
That's right -- Ideally I would set it up that way... And it's probably possible to do this in a Cake way that supports it, but it's may take some digging to find out how |
# |
May 2nd 2019, 23:37 |
waspinator |
it's old, but should give you an idea of something to try |
# |
May 2nd 2019, 23:36 |
waspinator |
@noel https://stackoverflow.com/questions/8070914/how-to-implement-a-self-referencing-parent-id-model-in-cakephp |
# |
May 2nd 2019, 21:04 |
challgren |
@noel http://docs.phinx.org/en/latest/migrations.html |
# |
May 2nd 2019, 20:37 |
noel |
or for that matter how to write migrations / SQL CREATE statements for the things it does support? |
# |
May 2nd 2019, 20:36 |
noel |
@waspinator there isn’t much bake documentation… how would one tell if bake supports something? |
# |
May 2nd 2019, 20:30 |
waspinator |
if it bakes your models, make sure to remove any auto generated code which references a `parents` table |
# |
May 2nd 2019, 20:29 |
waspinator |
oh I see. I haven't had a chance to make one like that yet, so I'm not sure if it's supported by bake |
# |
May 2nd 2019, 20:28 |
noel |
Normal, non-self-referencing many to many associations work fine with bake. I’m not having trouble with those. It’s the self-referencing variety that I’m trying to conquer. |
# |
May 2nd 2019, 20:27 |
noel |
It’s supposed to be self-referencing. |
# |
May 2nd 2019, 20:26 |
noel |
But then it will look for the parents table. There is no parents table. |
# |
May 2nd 2019, 20:26 |
waspinator |
join tables should be named with their associated table names. so `tests_parents` instead of `tests_tests` |
# |
May 2nd 2019, 20:24 |
noel |
Same error message. |
# |
May 2nd 2019, 20:24 |
slackebot |
->create(); } public function down() { $this->table('tests')->drop()->save(); $this->table('tests_tests')->drop()->save(); } } ``` |
# |
May 2nd 2019, 20:24 |
slackebot |
=> false, ]) ->addPrimaryKey(['id']) ->addColumn('test_id', 'integer', [ 'default' => null, 'limit' => 11, 'null' => false, 'signed' => false, ]) ->addColumn('parent_id', 'integer', [ 'default' => null, 'limit' => 11, 'null' => false, 'signed' => false, ]) |
# |
May 2nd 2019, 20:24 |
slackebot |
->addPrimaryKey(['id']) ->addColumn('name', 'string', [ 'default' => null, 'limit' => 255, 'null' => true, ]) ->create(); $this->table('tests_tests') ->addColumn('id', 'integer', [ 'autoIncrement' => true, 'default' => null, 'limit' => 11, 'null' => false, 'signed' |
# |
May 2nd 2019, 20:24 |
noel |
Here’s the updated migration: ``` <?php use Migrations\AbstractMigration; class Initial extends AbstractMigration { public $autoId = false; public function up() { $this->table('tests') ->addColumn('id', 'integer', [ 'autoIncrement' => true, 'default' => null, 'limit' => 11, 'null' => false, 'signed' => false, ]) |
# |
May 2nd 2019, 20:24 |
noel |
@waspinator ok I can make it so.. but it still doesn’t fix the error :slightly_smiling_face: |
# |
May 2nd 2019, 20:23 |
waspinator |
there should only be a single primarykey, the `id` field. set use `$table->addIndex(['test_id', 'parent_id']);` instead |
# |
May 2nd 2019, 20:22 |
noel |
@waspinator tx for the feedback. it’s a link table for self-referenced many to many records from tests. You say it needs an id as well… why? It’s just a link table. Other many-to-many relationships work fine with Bake without their own id fields. Also adding the id field doesn’t fix the error. |
# |
May 2nd 2019, 20:16 |
waspinator |
your `tests_tests` table `belongsTo` the `tests` and `parent` tables, but it needs it's own `id` as well |
# |
May 2nd 2019, 20:15 |
waspinator |
normally every table should have an `id` column |
# |
May 2nd 2019, 20:14 |
waspinator |
what is `'tests_tests'` table supposed to be for? |
# |
May 2nd 2019, 20:11 |
slackebot |
->addColumn('parent_id', 'integer', [ 'default' => null, 'limit' => 11, 'null' => false, 'signed' => false, ]) ->addPrimaryKey(['test_id', 'parent_id']) ->create(); } public function down() { $this->table('tests')->drop()->save(); $this->table('tests_tests')->drop()->save(); } } ``` |