注:本教程純手打原創,若有雷同,一定抄襲個人。本文版權歸屬yoqu,若是有哪位轉載請署名做者。php
最近公司有個項目,由我作用戶操做這一塊,因爲drupal自帶的profile不是很友好,因此用戶屬性是利用profile2進行定義的。我以其中屬於哪一個機房的屬性來進行講解吧。數組
$user=user_load($uid); $student=profile2_load_by_user($user,'student');
這個函數官方有文檔,經過用戶對象返回用戶的profile2的對象,固然可能用戶定義了幾個profile。咱們用到的是student這個profile。
而後利用field_get_items()得到指定的字段
例如機房的機器名叫作machine_room.
使用bash
$machine_room=field_get_items('profile2',$student,'field_machine_room'));
結果返回的是一個數組,直接取出你想要的值就能夠進行其餘操做了。markdown
增長操做指的是已有用戶,可是用戶沒有添加profile對象。這一步我研究了很久,大概按照個人理解是這樣的。
1.先取出一個用戶函數
$account=user_load($uid);
2.獲得profile。學習
$profile = profile2_load_by_user($account,'student');
3.判斷若是不存在就新建ui
if (!$profile) { 建立一個新的profile $profile = profile_create(array( //設置profile的類型 'type'=>'student', //指定對哪一個用戶進行操做 'uid'=>$account->uid, //這一步對機房賦值001我的感受我這裏太麻煩,不知能夠簡單點不。 'field_machine_room'=>array('und'=>array('0'=>array('value'=>'001',),),), ) ); }
4.修改值以後進行一個保存spa
profile2_save($profile);
步驟和2差很少,不過不用判斷是否存在我就再也不細說code
profile2_delete(Profile $profile);
調用刪除函數,官方給的函數是這樣的:對象
function profile2_delete(Profile $profile) { $profile->delete(); }
經過查操做裏面的profile2_load_by_user獲得一個profile對象,而後調用profile2_delete函數便可進行刪除操做。
好了,本次學習到此結束,歡迎和你們一塊兒交流經驗。若是有什麼問題能夠發郵件問我,個人郵箱yoqulin@qq.com,也能夠私信我。