コンポーネントをインストールするための新しいユーザーグループを作成する必要があり、以下のコードsaves期待どおりにデータを保存します。ただし、後で使用するためにユーザーグループのIDを取得すると、「機能しません」。
JTableを使用するとIDが返されますが、プラグインは起動されません-モデルが追加したレコードのIDを取得する際に、ここに明らかなものがありませんか?
$model = new UsersModelGroup(array('table_path' => $basePath.'/tables'));
$data = array('parent_id' => '2','title'=>'My Usergroup');
if(!$model->save($data)){
$msg = 'Usergroup was not saved: '.$model->getError();
}else{
$my_new_group_id = $model->get('id'); // Returns "null"
}
保存後、コントローラーがモデルデータにアクセスできるようにするpostSaveHook
メソッドを使用してみてください。
public function postSaveHook($model, $validData)
{
$item = $model->getItem();
$my_new_group_id = $item->get('id');
}
これは古い記事ですが。私に役立つ解決策の1つを投稿したいと思いました。
JLoader::import('group', JPATH_ADMINISTRATOR.'/components/com_users/models');
$groupModel = JModelLegacy::getInstance( 'Group', 'UsersModel' );
$groupModel->save($group);
$groupId = $groupModel->getState('group.id');