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

السؤال

Recommended Posts

  • 0
نشر

يوجد طريقتين:

الأولى عن طريق الصنف 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
نشر

لا نقوم ببذر الصور و إنما أسماء هذه الصور أو المسار الخاص بها بعد رفعها في التطبيق.

على سبيل المثال نريد بذر مجموعة من المُستخدمين 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">

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...