spLinker下的update的问题

#1 bsdos

我发现spLinker下,update时,只有hasone的状态下,子表才会被update到,其他2中情况,只有主表的内容被update,字表没有反应

 
class main extends spController
{
function index(){
  $newrow = array(
   'user_name' => "灰太狼",
   'guestbook' => array(  // 请注意这里对应的就是$linker的'map' => 'detail',也就是关联的标识
    array('contents' => "草原上的王者1"),
    array('contents' => "草原上的王者2") // 这里是增加到对应表上的数据
   ),
  );
$changerow = array(
   'user_name' => "灰太狼改",
   'guestbook' => array(  // 请注意这里对应的就是$linker的'map' => 'detail',也就是关联的标识
    array('contents' => "改1草原上的王者"),
    array('contents' => "改2草原上的王者") // 这里是修改到对应表上的数据
   ),
  );
  $conditions = array('user_id' => "1");
  $userObj = spClass("user");
  $userObj->spLinker()->create($newrow); // 先加一条,根据关联,会在user表和guestbook表里分别加入数据,加完后,user表里的user_id=1
  $userObj->spLinker()->update($c,$changerow);//对上面那条数据进行修改
  
  $results = $userObj->spLinker()->findAll();
  dump($results);
  
  
  
}

}


dump结果是
灰太狼 改成 灰太狼改 了
但是
草原上的王者1  没有改成  改1草原上的王者

请问是不是不支持?

帮助文件里的说明:
[table=500]
[td][tr][td]关联 [/td][td]spLinker类型[/td][td]可以应用范围[/td][td]要求[/td][/tr]
[tr][td]一对一关联[/td][td]hasone[/td][td]find,findAll,findBy,create,update,delete,deleteByPk[/td][td] [/td][/tr]
[tr][td]多对多关联 [/td][td]manytomany[/td][td]find,findAll,findBy[/td][td]建立中间表[/td][/tr]
[/table]
没有说到1对多的情况

2011-07-20 18:04:11

#2 bsdos

没找到编辑,更正一下
第22行的$c,应该是$conditions

2011-07-20 18:07:15

#3 jake

好像是不可以,一般而言关联主要用于查询,增删改这些还是分开处理会更有条理

2011-07-20 21:35:16