اذهب إلى المحتوى

السؤال

نشر

أحاول إظهار بعض المعلومات عن لارافيل في موقعي، وأريد طباعة ما يكافئ الاستعلام الذي يتم استخدام Eloquent فيه إلى استعلام SQL، فلدي الاستعلام التالي:

DB::table('users')->get();

كيف يمكنني استخراج الاستعلام الذي أقوم به عن طريق Eloquent لسلسلة نصية؟ أي طباعة التالي بدلاً من نتيجة الاستعلام:

SELECT * FROM users

 

Recommended Posts

  • 0
نشر

يُمكنك طباعة الإستعلام الذي يتم تنفيذه عن طريق إستخدام التابع toSql كما هو موضح أدناه:

DB::table('users')->toSql();

// أو 

User::toSql();

فمثلا إن كنت تريد طباعة الإستعلام لهذا الكود:

User::where('id', '<', 10)->get();

تقوم بالتالي:

User::where('id', '<', 10)->toSql();

 

  • 0
نشر

يمكن الاستماع للحدث 'illuminate.query' عند الحاجة لإجرائها على أكثر من استعلام وللسهولة. كالتالي:

Event::listen('illuminate.query', function($query, $params, $time, $conn) 
{ 
    dd(array($query, $params, $time, $conn));
});

DB::table('users')->get();

ويجب إضافتها قبل الاستعلامات، وعند حدوث أي استعلام على قاعدة البيانات سيتم تنفيذ محتوى التابع وطباعة مصفوفة تحوي جميع المتغيرات التي قمنا بتمريرها في التابع وبذلك يمكنك الحصول على كافة المعلومات الخاصة بهذا الاستعلام: الاستعلام نفسه - المتغيرات - توقيت الاستعلام - نوع الاتصال. وستكون نتيجتها بشكل مشابه للتالي:

array(4) {
  [0]=>
  string(21) "select * from "users""
  [1]=>
  array(0) {
  }
  [2]=>
  string(4) "0.94"
  [3]=>
  string(6) "sqlite"
}

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...