2016-07-01 25 views
2

Ich benutze CakePHP 3.2. Ich habe zwei Tabellen service_requests und coupon_historyCakePHP 3: Der Name der Assoziationseigenschaft kollidiert mit dem gleichnamigen Feld der Tabelle

service_requests Tisch

CREATE TABLE `service_requests` (
    `id` char(36) NOT NULL, 
    `request_id` bigint(20) NOT NULL, 
    `user_id` char(36) NOT NULL, 
    `user_address_id` char(36) NOT NULL, 
    `service_id` char(36) NOT NULL, 
    `service_area_id` char(36) NOT NULL, 
    `coupon_used` int(11) NOT NULL DEFAULT '0' COMMENT '0: Not Applied; 1: Applied', 
    `coupon_used_id` char(36) NOT NULL, 
    `status_code` int(11) NOT NULL, 
    `status` varchar(50) NOT NULL, 
    `created` datetime NOT NULL, 
    `modified` datetime NOT NULL 
) 

coupon_history Tisch

CREATE TABLE `coupon_history` (
    `id` char(36) NOT NULL, 
    `user_id` char(36) NOT NULL, 
    `coupon_id` char(36) NOT NULL, 
    `service_request_id` char(36) DEFAULT NULL, 
    `created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    `modified` datetime NOT NULL 
) 

Wenn ich service_requests Tisch backen durch

bin/cake bake all service_requests 

Es Warnung Fehler als

Association property name "coupon_used" clashes with field of same name of table "service_requests". You should explicitly specify the "propertyName" option. in [/var/www/html/flitfix/admin2/vendor/cakephp/cakephp/src/ORM/Association.php, line 445] 

2016-07-01 07:17:32 Warning: Warning (512): Association property name "coupon_used" clashes with field of same name of table "service_requests". You should explicitly specify the "propertyName" option. in [/var/www/html/flitfix/admin2/vendor/cakephp/cakephp/src/ORM/Association.php, line 445] 
Trace: 
Cake\Error\BaseErrorHandler::handleError() - CORE/src/Error/BaseErrorHandler.php, line 146 
Cake\ORM\Association::property() - CORE/src/ORM/Association.php, line 445 
Bake\Utility\Model\AssociationFilter::filterAssociations() - ROOT/vendor/cakephp/bake/src/Utility/Model/AssociationFilter.php, line 94 
Bake\Shell\Task\TemplateTask::_filteredAssociations() - ROOT/vendor/cakephp/bake/src/Shell/Task/TemplateTask.php, line 465 
Bake\Shell\Task\TemplateTask::_loadController() - ROOT/vendor/cakephp/bake/src/Shell/Task/TemplateTask.php, line 295 
Bake\Shell\Task\TemplateTask::main() - ROOT/vendor/cakephp/bake/src/Shell/Task/TemplateTask.php, line 147 
Bake\Shell\BakeShell::Bake\Shell\{closure}() - ROOT/vendor/cakephp/bake/src/Shell/BakeShell.php, line 252 
Cake\Collection\Collection::each() - CORE/src/Collection/CollectionTrait.php, line 51 
Bake\Shell\BakeShell::all() - ROOT/vendor/cakephp/bake/src/Shell/BakeShell.php, line 253 
Cake\Console\Shell::runCommand() - CORE/src/Console/Shell.php, line 444 
Cake\Console\ShellDispatcher::_dispatch() - CORE/src/Console/ShellDispatcher.php, line 221 
Cake\Console\ShellDispatcher::dispatch() - CORE/src/Console/ShellDispatcher.php, line 181 
Cake\Console\ShellDispatcher::run() - CORE/src/Console/ShellDispatcher.php, line 127 
[main] - ROOT/bin/cake.php, line 33 

Früher gab es coupon_used Tabelle, die ich coupon_history umbenannt und gelöscht werden alle controller, model and template namens coupon_used und versuchen, wieder coupon_history zu backen, aber es gibt Fehler. Ich habe versucht, mit einem neuen Projekt von Composer erstellt, aber in der gleichen Fehler ist da.

+0

die Fehlermeldung erneut lesen, es sagt Ihnen klar, was falsch ist und wie man es beheben. – burzum

+0

Ja, ich kann das Problem beheben, wie in Fehlermeldung angegeben, aber die Frage ist, warum dieser Fehler auch wenn es keine Tabelle 'coupon_used' gibt, die Konflikt mit Spalte mit dem gleichen Namen in' service_requests' –

Antwort

2

als Warnung sagt, es gibt Konflikt zwischen Feldnamen "coupon_used" mit coupon_useds Tabelle Eigenschaft, die coupon_used ist. Dies geschieht aufgrund der Standardregeln von CakePHP.

Sie sollten Feldname "coupon_used" oder coupun_useds Tabelle Eigenschaft mit einem anderen Namen in service_requests Tabelle Modell ändern.

class ServiceRequests extends Table{ 
    .... 
    //assumption if association is belongsTo 
    $this->belongsTo('CouponUsed',['propertyName' => 'AnotherCouponUsed']); 
    .... 
} 
+0

Anfänglich gab es 'coupon_used' Feldname in' service_requests' und 'coupon_used' Tabelle. Dann kann ich die Fehlerursache verstehen. Aber jetzt habe ich 'coupon_used' Tabelle und Backanwendung gelöscht, um ein neues Projekt zu erstellen. Event der Fehler ist da. Wie könnte es in Konflikt geraten, selbst wenn es keine Tabelle nach dem gleichen Spaltennamen gibt –

+0

Kannst du den Warnfehler posten? –

+0

Ich habe bereits Warnfehler in Frage gestellt. –

0

Bitte beziehen Sie sich auf den folgenden Link. Eigenschaftsname, der so definiert werden soll.

$this->belongsTo('ProductPrices', [ 
    'foreignKey' => 'product_price_id', 
    'className' => 'ProductPrices', 
    'propertyName' => 'prod_price' 
]); 

http://www.cloudypoint.com/Tutorials/discussion/cake-framework-solved-cakephp-3-querybuilder-for-associative-data/

+1

Diese Antwort zeigt tatsächlich [zurück] (https://stackoverflow.com/questions/44281597/cakephp-3-querybuilder-for-associative-data) zu SO. Wahrscheinlich ist es besser, das Update nur in einem Kommentar zu erwähnen, anstatt Antworten von anderen Fragen zu kopieren. –