with all the params. Otherwise certain things stop working well. As
for TriadApi, you can just import TriadApi before the classes that use
it.
App::import('Model', 'TriadApi');
class Subscriber extends TriadApi {
Like that. If you don't want all the imports for some reason, just
import Triad Api at the bottom of AppModel
-Mark
On Sep 3, 2:38 pm, RhythmicDevil <rhythmicde...@gmail.com> wrote:
> Hi Mark,
> thanks for taking the time to write back. However I am not entirely
> sure what you mean. I tried to pass an integer to AppModel's
> constructor which is called in TriadAPI's constructor but I am still
> getting the same error which is:
>
> Fatal error: Class 'TriadApi' not found in C:\vhosts\local.solowsc\app
> \models\subscriber.php on line 2
>
> This leads me to believe that triad_api.php is in the wrong location
> to do what I want to do or that I am approaching this completely ass
> backwards. So what is the correct way to deal with this? I suppose I
> could just have one model that represents the API and place all my
> methods in that. But thats going to get messy quickly as I will be
> getting Subscriber data, TV Schedule data and Device data from the
> API.
>
> What is your opinion?
>
> Thanks
> Steve
>
> On Sep 3, 2:10 pm, mark_story <mark.st...@gmail.com> wrote:
>
>
>
> > You forgot all the parameters to the model constructor.
>
> >http://api.cakephp.org/class/model#method-Model__construct
>
> > -Mark
>
> > On Sep 3, 11:00 am, RhythmicDevil <rhythmicde...@gmail.com> wrote:
>
> > > Hi,
> > > I have an app. It has to get data from two different sources, a mysql
> > > db and an XML API
>
> > > For the API model I want to be able to do the following:
>
> > > TriadAPI - extends AppModel contains generic query and connection info
> > > Subscriber - extends TriadAPI and contains subscriber specific queries
>
> > > I am also using a data source called soap_source.
>
> > > The problem I have is that I dont have any idea where to put the
> > > TriadAPI file so that it gets loaded. The reason I want to do this is
> > > that I dont want to repeat the generic query and connection info. It
> > > makes senses to me that the hierarchy should look like this:
>
> > > AppModel -> TriadAPI -> Subscriber
>
> > > I cant modify AppModel as that will screw up the models that need to
> > > use the DB. At least I think thats that would happen. I have pasted my
> > > model classes below for reference. Thanks for any advice.
>
> > > /app/models/triad_api.php
> > > class TriadApi extends AppModel
> > > {
> > > /**
> > > * @var useDbConfig
> > > * @description The name of the DataSource connection that this
> > > Model uses. Defined in core/database.php
> > > */
> > > public $useDbConfig = 'soap';
> > > public $useTable = false;
>
> > > public $TransactionParams = array ();
>
> > > public function __construct()
> > > {
> > > parent::__construct();
>
> > > $api_config = Configure::read('API');
>
> > > $this->TransactionParams['loginName'] = $api_config
> > > ['loginName'];
> > > $this->TransactionParams['loginPassword'] = $api_config
> > > ['loginPassword'];
> > > $this->TransactionParams['orgName'] = $api_config['orgName'];
>
> > > $this->TransactionParams['transaction']['id'] = date('d-m-y-
> > > i:s:a').' - ';
> > > $this->TransactionParams['transaction']['wait'] = $api_config
> > > ['wait'];
> > > $this->TransactionParams['transaction']['version'] =
> > > $api_config['version'];
> > > $this->TransactionParams['transaction']
> > > ['TransactionCommandList'] = array ();
> > > }
>
> > > public function formatResult($result)
> > > {
> > > return $result->transactionResult;
> > > }
>
> > > public function queryDatabase()
> > > {
> > > //stub
> > > }
>
> > > }
>
> > > /app/models/subscriber.php
> > > class Subscriber extends TriadApi
> > > {
> > > public function __construct()
> > > {
> > > parent::__construct();
> > > }
>
> > > public function QuerySub($SubscriberId)
> > > {
> > > $this->TransactionParams['transaction']['id'].'QuerySub';
> > > $this->TransactionParams['transaction']
> > > ['TransactionCommandList']['TransactionCommand']['QuerySub']
> > > ['SubscriberId'] = $SubscriberId;
> > > return $this->formatResult($this->query('SendTransaction',
> > > $this->TransactionParams));
> > > }
>
> > > /*
> > > * <QuerySubNRC>
> > > * <SubscriberId> subscriber_id </SubscriberId>
> > > * </QuerySubNRC>
> > > */
> > > public function QuerySubNRC($SubscriberId)
> > > {
> > > $this->TransactionParams['transaction']['id'].'QuerySubNRC';
> > > $this->TransactionParams['transaction']
> > > ['TransactionCommandList']['TransactionCommand']['QuerySubNRC']
> > > ['SubscriberId'] = $SubscriberId;
> > > return $this->formatResult($this->query('SendTransaction', $this->TransactionParams));
>
> > > }
>
> > > /*
> > > * <PerformSubOp>
> > > * <SubscriberId> subscriber_id </SubscriberId>
> > > * <Operation> operation </Operation>
> > > * </PerformSubOp>
> > > */
> > > public function PerformSubOp($SubscriberId)
> > > {
> > > $this->TransactionParams['transaction']['id'].'PerformSubOp';
> > > $this->TransactionParams['transaction']
> > > ['TransactionCommandList']['TransactionCommand']['PerformSubOp']
> > > ['SubscriberId'] = $SubscriberId;
> > > $this->TransactionParams['transaction']
> > > ['TransactionCommandList']['TransactionCommand']['PerformSubOp']
> > > ['Operation'] = 'Refresh';
> > > return $this->query('SendTransaction', $this-
>
> > > >TransactionParams);
> > > }
> > > }
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to cake-php+unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---
No comments:
Post a Comment