ユーザーは1つのノードのみの所有者であり、ログイン時にユーザーを唯一の所有ノードにリダイレクトしたいと思います。
ログインしているユーザーしかわからない場合、ノードのコンテンツを取得するにはどうすればよいですか?
これは私がそれをしている方法です:
function MYHOOK_user_login(&$edit, $account) {
global $user;
$nid = db_query('SELECT nid FROM {node} WHERE uid = :uid', array(':uid' => $user->uid))->fetchField();
drupal_goto('node/' . $nid);
}
hook_user_login-> http://api.drupal.org/api/drupal/modules--user--user.api.php/functionを見てください。/hook_user_login/7 。これは、ユーザーID(uid)でノードID(nid)を検索し、次にdrupal_goto( http://api.drupal.org/api/drupal/includes--common.inc/function/drupal_goto/7 )
ログインフォームにhook_form_alterを使用してカスタマイズを行うオプションもあります。これは、D6ソリューションと考えることができます。これらの提案が質問に対応していない場合は、詳細を提供する必要があります。
$nid = db_query('SELECT nid FROM {node} WHERE uid = :uid AND type = :type', array(':uid' => $user->uid, ':type' => $node_type))->fetchField():
これはあなたのnidを取得します。
注:この回答は無視してください(理由についてはコメントを参照してください)。
$nid = db_select('node', 'n')
->fields('n', array('nid'))
->condition('n.uid', $user->uid)
->range(0, 1)
->fetchField()
他の提案は確かに有効ですが、より「Drupal」の方法であるため、私はこの方法でこれを実行するように誘惑されます。安全のため、SQLステートメントに制限を設けていることに注意してください。