与Atk4一起工作对我这样的新秀来说是一次伟大的冒险。现在我真的有一个问题,我自己无法解决。 我在MySQL数据库中有两个表。第一个名为user(id,username,email),第二个名为trips(id,user_id,name)。我已经为用户登录并注册了表单。我希望一个已登录的用户能够看到它自己的旅行。我曾经使用以下代码为其配置文件信息做这件事:
<?php
class page_userprofile extends Page{
function init(){
parent::init();
$this->api->auth->check();
$model = $this->add('Model_user');
$this->add('FormAndSave')->setModel($model)->loadData($this->api->auth->get('id'));
}
}
我必须做一些与Model_trips类似的事情,但我不知道是什么。我试过了 来自Atk4网站的例子:
// Traverse foreign keys. Automatically loads proper model and data
$company=$emp->getRef('company_id');
这是我写的最后一段代码:
<?php
class page_mytrips extends Page{
function init(){
parent::init();
$this->api->auth->check();
$model = $this->add('Model_trips');
$this->add('FormAndSave')->setModel($model)->loadData($this->getRef('user_id'));
}
}
请帮帮我!!!
答案 0 :(得分:1)
你非常接近:
$model = $this->add('Model_trips');
$model->setMasterField('user_id', $this->api->auth->get('id'));
之后您可以在CRUD,MVCGrid,MVCForm或MVCLister中使用模型,以下规则将适用:
有时我添加功能:
class Model_User extends Model_Table {
function getTrips(){
return $this->add('Model_trips')
->setMasterField('user_id',$this->get('id'));
}
}
然后你可以使用以下内容。
$model = $this->add('Model_user')->loadData($user_id)->$getTrips();
如果您想看到其他用户的旅行,请提供便利。