ভূমিকার নাম থেকে আমি কীভাবে ভূমিকা আইডি খুঁজে পাব?


17

লগ ইন করার সময় আমি কোনও ব্যবহারকারীর জন্য তৃতীয় পক্ষের ডেটা সোর্স (ডিবিতে টেবিল) পরীক্ষা করতে চাই এবং যদি খুঁজে পাওয়া যায় তবে আমি সেই ব্যবহারকারীর ভূমিকা রাখতে চাই।

আমি ভূমিকাটি থেকে মুক্তি পাওয়ার অনুমান করতে চাই না, আমি এটি ভূমিকাটির নাম থেকে পেতে চাই।

উত্তর:


20

এটি ব্যবহারকারী_রোলস () এবং অ্যারে_সার্চ () এর সাথে বেশ সোজা । নীচে একটি ফাংশন রয়েছে যা নামের সাথে মিথ্যা এবং অন্যথায় মিথ্যা হিসাবে কোনও ভূমিকা আছে যদি রোল আইডি ফিরিয়ে দেয়।

function get_role_by_name($name) {
  $roles = user_roles();
  return array_search($name, $roles);
}

// Sample usage
$rid = get_role_by_name('administrator');

একটি লাইনার হবে:

$rid = array_search('administrator', user_roles());

1
ক্যোয়ারী দ্বারা সঞ্চালিত user_roles () বাঁধা হয় অনুবাদযোগ্য , একটি মডিউল ভূমিকা নাম অনুবাদ পারে যার মানে। দ্রুপাল কেবলমাত্র ডিফল্ট ভূমিকার জন্য ভূমিকা নামগুলি অনুবাদ করে (যেমন বেনামে ব্যবহারকারী এবং প্রমাণীকৃত ব্যবহারকারী)।
কিমলালুনো

32

ভূমিকাটির মেশিনের নামটি জানা, এটি ব্যবহার করা যথেষ্ট user_role_load_by_name()

if ($role = user_role_load_by_name('Role Name')) {
  // The role ID is in $role->rid.
}

যদি ভূমিকাটির অস্তিত্ব না থাকে ...

$role = user_role_load_by_name('Role Name');

$role_id = $role ? $role->rid : NULL;

3
আমি এই পদ্ধতির পক্ষে অনেক বেশি পছন্দ করি, অন্য পদ্ধতির মতোই ভূমিকাগুলির নামও অনুবাদ করা যায়। বস্তুত, ক্যোয়ারী দ্বারা সঞ্চালিত user_roles () বাঁধা হয় অনুবাদযোগ্য । দ্রুপাল কেবলমাত্র ডিফল্ট ভূমিকার জন্য নামগুলি অনুবাদ করে তবে একটি মডিউল অন্যান্য ভূমিকার নামগুলিও অনুবাদ করতে পারে।
কিমলালুনো

4
$ মুক্তি = ($ ভূমিকা = ব্যবহারকারী_রোল_লোড_বাই_নাম ())? $ ভূমিকা-> মুক্তি: নুল;
পিয়েরে বুয়েল

-2

ভূমিকা এবং এর আইডি সনাক্ত করার সর্বোত্তম উপায় হ'ল এসকিউএল। আপনার এসকিউএল সম্পাদক এ এই ক্যোয়ারী চালান।

select * from roles;

এবং আপনি আইডি এবং ওজন সহ ভূমিকাগুলির তালিকা পাবেন।


1
সেরা উপায় হ'ল দ্রুপাল দ্বারা সরবরাহিত এপিআই ব্যবহার করা। কোনও এপিআই থাকা অবস্থায় সরাসরি ডাটাবেস অ্যাক্সেস করা কখনই কোনও ভাল ধারণা বা সেরা উপায় নয়।
কিমলালুনো

এই ভূমিকাগুলি পেতে খুব সহজ উপায়! দ্রুপাল স্ট্যাক এক্সচেঞ্জ পুলিশ এত সহজ সমাধানটি দিয়েছিল বলে আমি অবাক হই না।
স্বর্ণকেশী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.