-
المساهمات
340 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
4
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
أجوبة بواسطة Hafsa Aly
-
-
اريد عمل button يمكنني من تصدير بيانات من database الى شيت اكسيل وذلك في laravel7
-
1
-
-
بتاريخ 21 دقائق مضت قال Yomna Raouf:
يوجد عدة طرق للقيام بذلك، منها استخدام paginator كما يلي:
public function index() { $projects = auth()->user()->projects::paginate(2); return view('projects.index', compact('projects')); }
نقوم بكتابة عدة السجلات التي نريد الحصول عليها كمعامل للتابع paginate
في هذه الحالة سيحتوي المتغير على instance من الصنف Paginator، و سيتم تخزين البيانات الخاصة بك أسفل مفتاح key يسمى data، هذا في حالة ال JSON
{ "total": 50, "per_page": 15, "current_page": 1, "last_page": 4, "first_page_url": "http://laravel.app?page=1", "last_page_url": "http://laravel.app?page=4", "next_page_url": "http://laravel.app?page=2", "prev_page_url": null, "path": "http://laravel.app", "from": 1, "to": 15, "data":[ { // Record... }, { // Record... } ] }
أو يمكنك استخدام الطريقة التالية في النسخ الأقدم من laravel مثل laravel 5 مثلًا:
public function index() { $projects = auth()->user()->projects::take(2)->get(); return view('projects.index', compact('projects')); }
و في النسخ الأحدث يمكنك استخدام الطريقة التالية:
public function index() { $projects = auth()->user()->projects::all()->take(2); return view('projects.index', compact('projects')); }
ولكن هنا لم يحدد اسماء الحقلين .. اقصد لم نحدد الحقلين الذي اود اختيارهما
-
السلام عليكم
اذا اردت بهذه الدالة بدلا من الحصول على كل حقول الجدول الحصول على حقلين فقط فكيف اكتبها
public function index() { $projects = auth()->user()->projects; return view('projects.index', compact('projects')); }
-
1
-
-
بتاريخ 20 دقائق مضت قال Adnane Kadri:
يمكن تلخيص الية إنشاءها وفق الخطوات التالية , سنقوم بتعريف العلاقة كمثال بين النموذجين Category و Product :
-
بداية نحتاج إنشاء الجداول و النماذج المراد إنشاء العلاقة بينهما :
php artisan make:model Category -m php artisan make:model Product -m
-
سنحتاج أيضا إنشاء جدول وسيط لتحقيق منطق العملية . بحيث يجب أن يتكون اسم الجدول الوسيط من أسماء فردية لكلا الجدولين ، مفصولة برموز شرطة سفلية ، ويجب ترتيب هذه الأسماء بترتيب أبجدي ، لذلك يجب أن يكون لدينا category_product ، وليس product_category :
php artisan make:migration create_category_product_table
-
بعد ذلك سنحتاج التأكد من تعريف الحقول اللازمة في ملف تهجير هذا الجدول الوسيط , بحيث يجب أن يمتلك حقلا أجنبيا يعبر عن عمود المعرف id في كلا الجدولين : products و categories :
public function up() { Schema::create('category_product', function (Blueprint $table) { $table->increments('id'); $table->integer('category_id')->unsigned(); $table->integer('product_id')->unsigned(); }); }
4. تنفيذ أمر التهجير :
php artisan migrate
5. تعريف العلاقات في ملفات النماذج :
بداخل ملف النموذج Product.php :
class Product extends Model { public function categories() { return $this->belongsToMany(Category::class); } }
و أيضا بداخل ملف النموذج Category.php :
class Category extends Model { public function products() { return $this->belongsToMany(Product::class); } }
6. ثم كخطوة أخيرة لن يكون علينا إلا احترام العلاقة عند إنشاء أي صفوف بقواعد البيانات و القراءة عن طريق العلاقتين products و categories .
$productsOfXCategory = Category::find($ID)->products; $categoriesOfXProduct = Product::find($ID)->categories;
شكرا لك ولكن لم افهم الخطوة السادسة
-
1
-
بداية نحتاج إنشاء الجداول و النماذج المراد إنشاء العلاقة بينهما :
-
طريقة عمل العلاقة بين 2models العلاقة بينهم many to many
-
1
-
-
اذا كان عندي قائمة من الاشخاص في لجنة عليمية واريد عرضهم بترتيب الpriority اي ع حسب الدرجة العلمية الاكبر وهذا الfield هو priority في قاعدة البيانات فماذا اكتب
-
1
-
-
بتاريخ On 6/17/2021 at 19:54 قال عبود سمير:
الأمر بسيط فقط قومي بإتباع بعض الخطوات سأشرحها لك بإستخدام مثال: سنُضيف لإستمارة التسجيل نوع المُستخدم gender:
نُضيف الحقل gender إلى جدول المستخدمين:
أولا نُنشئ ملف تهجير لإضافة الحقل:
php artisan make:migration add_gender_to_users
نفتح ملف التهجير و نضيف الحقل للتابع up:
$table->enum('gender', ['male', 'female', 'others'])->default('male');
و في التابع down نُضيف:
$table->dropColumn('gender');
نقوم بتنفيذ أمر التهجير:
php artisan migrate
نضيف الحقل لإستمارة تسجيل الدخول في الملف register.blade:
<div class="form-group row"> <label for="gender" class="col-md-4 col-form-label text-md-right">{{ __('Gender') }}</label> <div class="col-md-6"> <select class="form-control @error('gender') is-invalid @enderror" name="gender" id="gender" required> <option value="">Select Your Gender</option> <option value="male" {{ old('gender') == 'male' ? 'selected' : '' }}>Male</option> <option value="female" {{ old('gender') == 'female' ? 'selected' : '' }}>Female</option> <option value="others" {{ old('gender') == 'others' ? 'selected' : '' }}>Others</option> </select> @error('gender') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror </div> </div>
نضيف الحقل gender لمصفوفة fillable في النموذج:
protected $fillable = [ 'name', 'email', 'password', 'gender' ];
بعد ذلك نتحقق من الحقل في المتحكم RegisterController و نضيف الحقل في إنشاء السجل:
'gender' => ['required', 'string', 'in:male,female,others'],
و في الإنشاء:
protected function create(array $data) { return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'gender' => $data['gender'], // إضافة الحقل 'password' => Hash::make($data['password']), ]); }
و هكذا بنفس الطريقة يُمكنك إضافة حقول أخرى.
شكرا لك . عندي سؤال اخر في نفس الموضوع اريد اضافة checkbox في ال registeration form لاختيار هوايات مع انني اريد معرفة اذا تم اختيار اكثر من هواية كيف يتم حفظها في الdb ايضا
-
السلام عليكم ورحمه الله
كيف اقوم بعمل إضافة حقول في ال registration form في laravel 7 وهذه الحقول تكون selection أو checkbox تجلب بياناتها من الdb
-
1
-
-
-
قمت بعمل اكثر من مشروع laravel معكم في دورة تطبيقات الويب وكنت ارفعها ع حسابي في bitbucket في المستودع فكيف استعملها لعرض اعمالي او لعمل الportfolio
-
1
-
-
namespace App\Http\Controllers; use App\Models\User; use Illuminate\Support\Facades\Hash; use Illuminate\Http\Request; class UsersController extends Controller { public function store(){ $user = new User; $user->name = request('name'); $user->email = request('email'); $user->password = request('pass'); $user->save(); return redirect('/users'); } }
اريد هنا عند ادخل مستخدم جديد ان يتم عمل hashing لل password الخاص به فكيف؟
-
ماهي laravel nova
-
بتاريخ الآن قال بلال زيادة:
يمكن تكرار الاستعلام مرة داخل controller الخاص ب admin panel و مرة في الcontroller الخاص بالموقع. يجوز تكرار نفس الاستعلام داخل أي controller تريدين.
انا اود تكرار نفس الاستعلام في نفس ال controller بهذا الشكل فهل هو صحيح
public function index(){ $blog_list = Blog::all(); return view('front.blog', compact('blog_list')); return view('back.blog.index', compact('blog_list')); }
بتاريخ 18 دقائق مضت قال Hafsa Aly:انا اود تكرار نفس الاستعلام في نفس ال controller بهذا الشكل فهل هو صحيح
public function index(){ $blog_list = Blog::all(); return view('front.blog', compact('blog_list')); return view('back.blog.index', compact('blog_list')); }
هل الكود صحيح
-
1
-
-
بتاريخ 42 دقائق مضت قال Wael Aljamal:
أرجو كتابة السؤال خارج محرر الأكواد لأنه غير مفهوم، مع التوضيح من فضلك
انا لدي تابع داخل داخل controller سيقوم بارجاع نفس البيانات وهذه البيانات اود عرضها مرة البيانات داخل view خاصه بالموقع مرة ومرة اخرى اود عرضها في view خاصه بجزء الadmin panel
-
بتاريخ منذ ساعة مضت قال بلال زيادة:
يمكنك صنع مجلد جديد داخل المسار التالي app\Http\Controllers وليكن Admin و من ثم في هذا المجلد نخزن أي controller خاص بالادمن أو عن طريق الأمر التالي نستطيع تخزين الcontroller في أي مجلد نريده
php artisan make:controller Admin\PostsController --resource
لو لاحظتي جيدا أننا قمنا بتوجيه تخزين الcontroller إلى المجلد Admin كما في الأمر إعلاه.
طبعا لوحة التحكم ستكون مختلفة التصميم و الأوامر عن تصميم الموقع فينصح بفصل controllers الخاصة بالموقع عن لوحة التحكم , أيضا نادراُ ما يتم استخدام نفس الcontroller لكل من اللوحة أو الموقع.
و أيضا يمكن في ملف web.php الخاص ب routes تمييز لكل من اللوحة و الموقع عن طريق Route::group ففي المثال التي حددنا مسارات لوحة التحكم داخل Route::group
Route::group(['prefix' => 'admin', 'as' => 'admin.'], function () { Route::get('/login', 'Admin\Auth\LoginController@showLoginForm')->name('adminlogin'); Route::post('/login', 'Admin\Auth\LoginController@login')->name('adminloginsubmit'); Route::get('/logout', 'Admin\Auth\LoginController@logout')->name('adminlogout'); Route::post('/logout', 'Admin\Auth\LoginController@logout')->name('adminlogout'); });
كلما كانت طريقة تنظيم المشروع ممتازة وجيدة فيسهل مستقبلا التطوير على المشروع و أيضا هذا قد يساعدكي في مشروعات أخرى من الأستفادة من العناصر المشتركة في مشاريع مستقبلية.
public function show($id){ $blog_item = Blog::find($id); return view('front.blog-post','back.blog.edit',compact('blog_item')); } في حال اذا اردت عرض هذه البانات على اولا view خاصه بال backend وثانيا ايضا نفس البيانات اود عرضها على front view فكيف اكتبها
public function show($id){ $blog_item = Blog::find($id); return view('front.blog-post','back.blog.edit',compact('blog_item')); } في حال اذا اردت عرض هذه البانات على اولا view خاصه بال backend وثانيا ايضا نفس البيانات اود عرضها على front view فكيف اكتبها
-
السلام عليكم
عند بدء عمل admin panel للمشروع اين انشئ الcontrollers الخاصه بال routes مع العلم انني اعمل على اصدار laravel7
هل انشئ لها controller جديده غير الcontroller الخاصه بجزء الfront في مجلد controller
-
2
-
-
بتاريخ 1 ساعة قال Ali Taha2:
تداعيات المشكلة كثيرة والمعلومات المقدمة من قبلك قليلة , ولكن لعل أبرز تشخيص هو أن الملفات الخاصة بمشروعك ليست بكاملة ,لذا يمكنك الاستعانة بال composer في المسار الخاص بمشروعك يمكنك تنفيذ التعليمة التالية :
composer install
ومن ثم تجربة التعليمة
php artisan serve
أما بخصوص التعليمة
php -S localhost:8000 -t public/
يمكنك مراجعة هذا الجزء من ال Documentation الخاص بالphp
https://www.php.net/manual/en/features.commandline.webserver.php
اي ملف معين في المشروع تريد مراجعته ؟ وسوف ارسله اليك
-
1
-
-
بتاريخ 42 دقائق مضت قال بلال زيادة:
صحيح , لاحظت هو عدم وجود متغير about وهو مسبب المشكلة ممكن ترفقي اول جزء من الملف هنا أو التأكد من متغير about في ملف FrontController.php
تم حل امشكلة شكرا جزيلا لك
بتاريخ 15 دقائق مضت قال Ali Taha2:يمكنك تجربة الحلول التالية :
أولاً:
تأكدي من سلامة تثبيت ال php على جهازك ..
وذلك بالضغط على ايقونة الويندوز + المحرف R
ومن ثم يظهر موجه الأوامر
نكتب الأمر
php -v
في حال ظهور الإصدار عندها تكون ال php مثبتة بشكل سليم على جهازك وننتقل للمرحلة الثانية ..
ثانياً:
في المسار الخاص بالمشروع نكتب cmd في مستكشف الملفات ومن بعدها نضغط Enter , حيث تفتح نافذه موجه الأوامر في المسار الخاص بمشروعك .
ثالثاً :
عند ظهور نافذة موجه الأوامر .. يمكنك كتابة التعليمة التالية وبعدها الذهاب إلى المسار المحدد بالأحمر :
php -S localhost:8000 -t public/
نفذت ماكتبته لي وتم حلها شكرا لك ولكن اريد ان افهم لماذا كتبنا هذا الامر ولما حدثت المشكله من البدايه
بتاريخ 9 دقائق مضت قال Hafsa Aly:تم حل امشكلة شكرا جزيلا لك
نفذت ماكتبته لي وتم حلها شكرا لك ولكن اريد ان افهم لماذا كتبنا هذا الامر ولما حدثت المشكله من البدايه
ارجو الاجابة على سؤالي حتى لاتتكرر معي المشكله وشكرا
-
2
-
-
بتاريخ 13 دقائق مضت قال بلال زيادة:
ممكن تشوفي المسار التالي storage\logs وفحص مشاكل logs ستجدين عدة ملفات كل ملف مسمى بتاريخ اليوم إذا حصلت المشكلة اليوم سوف تجدين ملف بتاريخ اليوم ممكن تشوفي المشكلة المسببة لذلك أو وضع المشكلة هنا لنساعدك بها.
-
1
-
-
-
كيف احفظ صفحه الاجابات ع سؤالي هذه بحيث استطيع ان اراها بسهوله مرة اخرى
-
1
-
-
بتاريخ 4 دقائق مضت قال عبود سمير:
قد تلاحظين أن في laravel هناك عدة طرق للوصول إلى ما نريد، لذلك في هذه الحالة لا يوجد فرق، whereIn تُستخدم لإنشاء الإستعلام الذي نريده و get هي التي تقوم بتطبيق الإستعلام و إرجاع النتائج، بعكس find التي تقوم بالإثنين معاً، أحياناً قد لا نريد جلب السجلات بل نريد حذفها مثلاً او إجراء عملية أخرى و في هذه الحالة لن تُساعدنا find، يُمكن إستخدامها لكن سنقوم في هذه الحالة بإجراء إستعلامات زائدة لا داعي لها. فإذا كنا نريد الحذف لماذا نجلب البيانات ما دُمنا نستطيع حذفها مُباشرة:
Model::whereIn('id', [1, 2])->delete();
فهمت شكرا لك وعندي سؤال اخر هو كيف اجلب جميع سجلات جدول ولكن من اخر سجل الى اول سجل
-
بتاريخ 33 دقائق مضت قال عبود سمير:
لجلب سجلات مُحددة عن طريق id النموذج مثلاً 1، 4، و 9 نقوم بإستعمال التابع find على الmodel و تمرير مصفوفة تضم المُعرفات التي نريد جلب سجلاتها:
Model::find([1, 4, 9]);
أي أننا إن أردنا جلب المُستخدم الأول و الثاني يُمكننا إستخدام:
User::find([1, 2]);
أما إن كنا نريد جلب سجلين عشوائيين يُمكن إستخدام هذه الطريق:
Model::inRandomOrder()->limit(2)->get();
الفرق بين first و get أن first يجلب أول سجل يُطابق الإستعلام، أما get تجلب كل السجلات التي تُطابق الإستعلام على شكل collection، مجموعة سجلات
هل يوجد فرق بينها وبين هذه الطريقه
namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Slide; use App\About; class HomeController extends Controller { public function homepage(){ $slides = Slide::all(); $about = About::whereIn('id', [1,2])->get(); return view ('front.homepage', compact('slides','about')); } }
-
هل كتابة الكود هذه صحيحه لكي اجلب السجلات من اخر الجدول الى اولها User::orderByDesc('title')->first();
اسفه اقصد التابع orderAsce () بدل من orderDesc()
-
1
-
تصدير بيانات إلى Excel في Laravel
في PHP
نشر
هل هناك طريقة اخرى لعمل التصدير باستخدام js