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

السؤال

نشر

أريد أن اعرف كيف يُمكنني جلب آخر سجل تمت إضافته في جدول بيانات في لارافيل. أنا أعلم التابع first الذي يجلب أول سجل لكن لا يوجد تابع إسمه last هل هناك طريقة محددة

أيضا اريد جلب سجل عشوائي في كل مرة فهل هناك طريقة لذلك؟

Recommended Posts

  • 0
نشر

لجلب آخر سجل تمت إضافته في جدول ما في لارافيل يمكنك الاعتماد على قيمة حقل created_at واستخدام latest كالتالي:

return DB::table('files')->latest('created_at')->first();

ويوجد أيضاً طريقة أخرى عن طريق ترتيب النتائج باستخدام  orderBy واستخدام desc للترتيب من الأكبر إلى الأصغر ثم أخذ أول قيمة كالتالي:

return DB::table('files')->orderBy('created_at', 'desc')->first();

أما لجلب سجلات عشوائية من الجدول يمكنك استخدام تابع مختصر تقدمه لارافيل كالتالي:
 

User::all()->random(1);

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

public function index()
{
    $data = DB::table('users')
                ->inRandomOrder()
                ->limit(1)
                ->get();
}

أو عن طريق المودل Model كالتالي:

public function index()
{
    $data = User::inRandomOrder()
                ->limit(1)
                ->get();
}

 

  • 0
نشر

هناك عدة طرق لعمل ذلك في لارافيل بإستخدام eloquent مثلاً فكما قلت أنت لا يوجد تابع last يُمكنك إستخدام التابع latest مع التابع first لتحقيق ذلك بهذه الطريقة:

إذا أردنا جلب آخر مستخدم:

<?php

User::latest()->first();

أو يُمكنك إستعمال التابع orderByDesc مع التابع first:

User::orderByDesc('created_at')->first();

أما بخصوص هذا السؤال:

بتاريخ 23 دقائق مضت قال كمال محمودي:

أيضا اريد جلب سجل عشوائي في كل مرة فهل هناك طريقة لذلك؟

يُمكنك ذلك عن طريق إستخدام التابع inRandomOrder و التابع first كما يلي:

User::inRandomOrder()->first();

و سيتم جلب مُستخدم عشوائي في كل مرة.

  • 0
نشر
بتاريخ On 10‏/2‏/2021 at 01:29 قال عبود سمير:

هناك عدة طرق لعمل ذلك في لارافيل بإستخدام eloquent مثلاً فكما قلت أنت لا يوجد تابع last يُمكنك إستخدام التابع latest مع التابع first لتحقيق ذلك بهذه الطريقة:

إذا أردنا جلب آخر مستخدم:


<?php

User::latest()->first();

أو يُمكنك إستعمال التابع orderByDesc مع التابع first:


User::orderByDesc('created_at')->first();

أما بخصوص هذا السؤال:

يُمكنك ذلك عن طريق إستخدام التابع inRandomOrder و التابع first كما يلي:


User::inRandomOrder()->first();

و سيتم جلب مُستخدم عشوائي في كل مرة.

لماذا لا نجلب البيانات باستخدام id 

اقصد لماذا نحتاج إلى هذه الطريقه إذا كان لكل مستخدم ،id

  • 0
نشر
بتاريخ 12 دقائق مضت قال Hafsa Aly:

لماذا لا نجلب البيانات باستخدام id 

اقصد لماذا نحتاج إلى هذه الطريقه إذا كان لكل مستخدم ،id

يُمكن جلب المُستخدم عن طريق تحديد مُعرف المُستخدم بهذا الشكل مثلاً:

<?php

$user = User::find(1); // جلب المُستخدم عن طريق تحديد المُعرف 1

// او يُمكننا إستخدام التابع where
$user = User::where('id', 1)->get();

لكن السؤال المطروح عن جلب آخر مُستخدم مُسجل في التطبيق في هذه الحالة لا ندري ماهي قيمة مُعرف هذا المُستخدم لذلك نلجأ لتلك الطريقة أننا نرتب المُستخدمين حسب وقت إنشائهم من الأحدث إلى الأقدم ثم نجلب أول سجل عن طريق إستعلام واحد فقط ، يُمكن بنفس الطريقة ترتيبهم حسب المُعرف من الأكبر إلى الأصغر و جلب أول سجل

أما السؤال الثاني فعن جلب سجل عشوائي من جدول ما نحن لا نعرف مُسبقاً مُعرف هذا السجل لذلك نستخدم التابع inRandomOrder ليُرتب السجلات ترتيباً عشوائياً في كل مرة يتم تنفيذه و عن طريق التابع first نجلب أول سجل بعد الترتيب العشوائي.

  • 0
نشر
بتاريخ On 2/10/2021 at 01:29 قال عبود سمير:

هناك عدة طرق لعمل ذلك في لارافيل بإستخدام eloquent مثلاً فكما قلت أنت لا يوجد تابع last يُمكنك إستخدام التابع latest مع التابع first لتحقيق ذلك بهذه الطريقة:

إذا أردنا جلب آخر مستخدم:


<?php

User::latest()->first();

أو يُمكنك إستعمال التابع orderByDesc مع التابع first:


User::orderByDesc('created_at')->first();

أما بخصوص هذا السؤال:

يُمكنك ذلك عن طريق إستخدام التابع inRandomOrder و التابع first كما يلي:


User::inRandomOrder()->first();

و سيتم جلب مُستخدم عشوائي في كل مرة.

هل التابع first()  نفس دور  get()   ام انه لجلب المستخدم الاول

واذا كان لدي مثلا في جدول البيانات ثلاثة مواضيع واريد عرض اول وثاني موضوع فقط 

ومرة اخرى عرض موضوعين فقط  ولكن بطريقه عشوائيه

 

بتاريخ On 2/12/2021 at 01:49 قال عبود سمير:

يُمكن جلب المُستخدم عن طريق تحديد مُعرف المُستخدم بهذا الشكل مثلاً:


<?php

$user = User::find(1); // جلب المُستخدم عن طريق تحديد المُعرف 1

// او يُمكننا إستخدام التابع where
$user = User::where('id', 1)->get();

لكن السؤال المطروح عن جلب آخر مُستخدم مُسجل في التطبيق في هذه الحالة لا ندري ماهي قيمة مُعرف هذا المُستخدم لذلك نلجأ لتلك الطريقة أننا نرتب المُستخدمين حسب وقت إنشائهم من الأحدث إلى الأقدم ثم نجلب أول سجل عن طريق إستعلام واحد فقط ، يُمكن بنفس الطريقة ترتيبهم حسب المُعرف من الأكبر إلى الأصغر و جلب أول سجل

أما السؤال الثاني فعن جلب سجل عشوائي من جدول ما نحن لا نعرف مُسبقاً مُعرف هذا السجل لذلك نستخدم التابع inRandomOrder ليُرتب السجلات ترتيباً عشوائياً في كل مرة يتم تنفيذه و عن طريق التابع first نجلب أول سجل بعد الترتيب العشوائي.

هل التابع first()  نفس دور  get()   ام انه لجلب المستخدم الاول

واذا كان لدي مثلا في جدول البيانات ثلاثة مواضيع واريد عرض اول وثاني موضوع فقط 

ومرة اخرى عرض موضوعين فقط  ولكن بطريقه عشوائيه

  • 0
نشر
بتاريخ 9 ساعة قال Tarek Elnabawy:

اريد عرض بيانات جدول  المستخدم مثلا في صحه اخري مختلفة كيف من فضلك في LARAVEL

يمكن عرض بيانات جدول المستخدم في صفحة أخرى في Laravel باستخدام العديد من الأساليب، ولكن أحد الأساليب الشائعة هي استخدام العرض (View) والتحكم (Controller).

في المثال التالي، سنفترض أن اسم الجدول المستخدم هو "users" وأننا نريد عرض بيانات المستخدمين في صفحة أخرى باستخدام العرض والتحكم.

1- ابدأ بإنشاء التحكم:

يمكنك استخدام الأمر "php artisan make:controller" لإنشاء تحكم جديد. يمكن تسمية التحكم "UserController" ووضعه في المسار "app/Http/Controllers".

php artisan make:controller UserController

2- قم بإضافة الدالة "index" إلى التحكم:

في الدالة "index"، قم بجلب بيانات المستخدمين من جدول "users" باستخدام نموذج "User" وتمريرها إلى العرض "users".

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;

class UserController extends Controller
{
    public function index()
    {
        $users = User::all();
        return view('users', compact('users'));
    }
}

3- إنشاء العرض:

قم بإنشاء عرض جديد باسم "users" ووضعه في المسار "resources/views". يمكن استخدام لغة العرض Blade للوصول إلى البيانات التي تم تمريرها من التحكم.

<!-- resources/views/users.blade.php -->

<!DOCTYPE html>
<html>
    <head>
        <title>Users</title>
    </head>
    <body>
        <h1>Users</h1>

        <table>
            <thead>
                <tr>
                    <th>Name</th>
                    <th>Email</th>
                    <th>Created At</th>
                    <th>Updated At</th>
                </tr>
            </thead>
            <tbody>
                @foreach ($users as $user)
                <tr>
                    <td>{{ $user->name }}</td>
                    <td>{{ $user->email }}</td>
                    <td>{{ $user->created_at }}</td>
                    <td>{{ $user->updated_at }}</td>
                </tr>
                @endforeach
            </tbody>
        </table>
    </body>
</html>

4- تعريف المسار:

قم بتعريف المسار الذي سيتم استخدامه لعرض بيانات المستخدمين في ملف "web.php" في المسار "routes".
 

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\UserController;

Route::get('/users', [UserController::class, 'index']);

5- اختبار الصفحة:

الآن يمكنك اختبار صفحة عرض المستخدمين بالانتقال إلى المسار "/users" في متصفح الويب. يجب عرض جميع بيانات المستخدمين في الجدول.

  • 0
نشر
بتاريخ On 13‏/3‏/2023 at 03:52 قال Mustafa Suleiman:

يمكن عرض بيانات جدول المستخدم في صفحة أخرى في Laravel باستخدام العديد من الأساليب، ولكن أحد الأساليب الشائعة هي استخدام العرض (View) والتحكم (Controller).

في المثال التالي، سنفترض أن اسم الجدول المستخدم هو "users" وأننا نريد عرض بيانات المستخدمين في صفحة أخرى باستخدام العرض والتحكم.

1- ابدأ بإنشاء التحكم:

يمكنك استخدام الأمر "php artisan make:controller" لإنشاء تحكم جديد. يمكن تسمية التحكم "UserController" ووضعه في المسار "app/Http/Controllers".

php artisan make:controller UserController

2- قم بإضافة الدالة "index" إلى التحكم:

في الدالة "index"، قم بجلب بيانات المستخدمين من جدول "users" باستخدام نموذج "User" وتمريرها إلى العرض "users".

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;

class UserController extends Controller
{
    public function index()
    {
        $users = User::all();
        return view('users', compact('users'));
    }
}

3- إنشاء العرض:

قم بإنشاء عرض جديد باسم "users" ووضعه في المسار "resources/views". يمكن استخدام لغة العرض Blade للوصول إلى البيانات التي تم تمريرها من التحكم.

<!-- resources/views/users.blade.php -->

<!DOCTYPE html>
<html>
    <head>
        <title>Users</title>
    </head>
    <body>
        <h1>Users</h1>

        <table>
            <thead>
                <tr>
                    <th>Name</th>
                    <th>Email</th>
                    <th>Created At</th>
                    <th>Updated At</th>
                </tr>
            </thead>
            <tbody>
                @foreach ($users as $user)
                <tr>
                    <td>{{ $user->name }}</td>
                    <td>{{ $user->email }}</td>
                    <td>{{ $user->created_at }}</td>
                    <td>{{ $user->updated_at }}</td>
                </tr>
                @endforeach
            </tbody>
        </table>
    </body>
</html>

4- تعريف المسار:

قم بتعريف المسار الذي سيتم استخدامه لعرض بيانات المستخدمين في ملف "web.php" في المسار "routes".
 

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\UserController;

Route::get('/users', [UserController::class, 'index']);

5- اختبار الصفحة:

الآن يمكنك اختبار صفحة عرض المستخدمين بالانتقال إلى المسار "/users" في متصفح الويب. يجب عرض جميع بيانات المستخدمين في الجدول.

شكرا لك اخي الف شكر

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...