Hafsa Aly نشر 11 فبراير 2021 أرسل تقرير نشر 11 فبراير 2021 (معدل) كيف اقوم بعمل بذر للصور في الdb في laravel7 تم التعديل في 12 فبراير 2021 بواسطة Wael Aljamal توضيح السؤال 1 اقتباس
0 Wael Aljamal نشر 12 فبراير 2021 أرسل تقرير نشر 12 فبراير 2021 يوجد طريقتين: الأولى عن طريق الصنف faker المعرف مسبقا في لارافيل: <?php /* @var $factory \Illuminate\Database\Eloquent\Factory */ use App\Product; use Faker\Generator as Faker; $factory->define(Product::class, function (Faker $faker) { return [ 'name' => $faker->word, 'short_description' => $faker->sentence, 'description' => $faker->paragraph, 'category_id' => function () { return factory(App\Category::class)->create()->id; }, 'amount' => $faker->randomFloat(2, 0, 10000), 'image' => $faker->image('public/storage/images',640,480, null, false), ]; }); حيث كما نلاحظ أن السطر التالي هو الذي قام بتشكل الصور: 'image' => $faker->image('public/storage/images',640,480, null, false), أو: $factory->define(Post::class, function (Faker $faker) { return [ 'image'=>'https://source.unsplash.com/random', ]; }); لإضافة أبعاد محددة للصور نضيف القيمة التالية للمسار 600*800/random/~ الطريقة الثانية عن طريق استخدام الموقع lorempixel: <img src="http://lorempixel.com/400/200/sports/" /> هنا يمكنك عمل كود php بسيط يشكل أرقام عشوائية أو تسلسلية وحشر الروباط في قاعدة البيانات. اقتباس
0 سمير عبود نشر 12 فبراير 2021 أرسل تقرير نشر 12 فبراير 2021 لا نقوم ببذر الصور و إنما أسماء هذه الصور أو المسار الخاص بها بعد رفعها في التطبيق. على سبيل المثال نريد بذر مجموعة من المُستخدمين 5 حيث لكل مُستخدم صورة و ملف التهجير الخاص بالمُستخدمين يحتوي على حقل صورة بهذا الشكل: <?php $table->string('image')->default('default.jpg'); نقوم برفع الصور إلى ملف public و نضعها في مُجلد images و لتكن الصور بالأسماء التالية مثلاً 1.png 2.png 3.png 4.png 5.png لدينا factory خاص بالنموذج User لإنشاء مُستخدم. و قمنا أيضاً بإنشاء Seeder خاص بالمستخدمين في ملف البذر نقوم بالتالي: <?php public function run() { $images = array( '1.png', '2.png', '3.png', '4.png', '5.png' ); foreach($images as $image) { User::factory()->create(['image' => $image]); } } عند تنفيذ أمر البذر سيتم إنشاء 5 مُستخدمين و لكل مُستخدم صورة من الصور التي رفعناها في المُجلد images. حيث للمُستخدم الأول بيانات عشوائية يتم تمريرها عن طريق الfactory أما في الحقل image فسيتم تخزين إسم الصورة png.1 و هكذا بالنسبة لبقية المٌستخدمين. أظن أن طريقة إستخدام الfactories في الإصدار السابع مُختلفة عن الإصدار الثامن لذلك بدل كتابة: User::factory()->create(['image' => $image]); نكتب: factory(App\User::class)->create(['image' => $image]); يعني ملف بذر المُستخدمين يُصبح كالآتي: <?php public function run() { $images = array( '1.png', '2.png', '3.png', '4.png', '5.png' ); foreach($images as $image) { factory(App\User::class)->create(['image' => $image]); } } و بالتالي الآن عند عرض صورة المُستخدم يُمكننا إستخدام <img src="{{asset('images/'. $user->image)}}" alt="user image"> أو <img src="{{asset('images/'. auth()->user()->image)}}" alt="user image"> اقتباس
السؤال
Hafsa Aly
كيف اقوم بعمل بذر للصور في الdb في
laravel7
تم التعديل في بواسطة Wael Aljamalتوضيح السؤال
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.