سلام ببخشید من دوتا جدول دارم یکی charity و دیگری photos، هر خیریه ای چنتا عکس داره و هر عکسی هم مربوط به یک خیریه است در نتیجه یک به چند میشه رابطه بینشون حالا من نمی دونم چجوری باید چندتا مقدار رو در ستون photo_id در جدول خیریه ها ذخیره کنم ممنون میشم یه نفر جواب بده کد ها به شکل زیرن:
migrations:
public function up()
{
Schema::create('charities', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('owner');
$table->integer('members');
$table->text('description');
$table->double('amountRaised')->nullable();
$table->string('email')->unique();
$table->string('address');
$table->string('phone');
$table->string('slug');
$table->text('meta_desc');
$table->text('meta_key');
$table->text('meta_title');
$table->unsignedBigInteger('category_id');
$table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->unsignedBigInteger('photo_id');
$table->foreign('photo_id')->references('id')->on('photos')->onDelete('cascade');
$table->timestamps();
});
}
Schema::create('photos', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('path');
$table->string('original_name');
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->timestamps();
});
models:
class Charity extends Model
{
public function user()
{
return $this->belongsTo(User::class);
}
public function category()
{
return $this->belongsTo(Category::class);
}
public function photos()
{
return $this->hasMany(Photo::class);
}
}
class Photo extends Model
{
public function user()
{
return $this->belongsTo(User::class);
}
public function charity()
{
return $this->belongsTo(Charity::class);
}
}
controller:
public function store(Request $request)
{
$charity = new Charity();
$charity->name = $request->input('name');
$charity->owner = $request->input('owner');
$charity->members = $request->input('members');
$charity->description = $request->input('description');
$charity->email = $request->input('email');
$charity->address = $request->input('address');
$charity->phone = $request->input('phone');
$charity->account_number = $request->input('account_number');
if ($request->input('slug')){
$charity->slug = make_slug(($request->input('slug')));
}
else{
$charity->slug = make_slug(($request->input('name')));
}
$charity->meta_title = $request->input('meta_title');
$charity->meta_desc = $request->input('meta_desc');
$charity->meta_key = $request->input('meta_key');
$charity->category_id = $request->input('category');
$charity->user_id = Auth::id();
$charity->photo_id = $request->input('photo_id')[0];
$charity->save();
Session::flash('success', 'خیریه مورد نظر با موفقیت ویرایش گردید.');
return redirect(route('charities.index'));
}
سلام
زمانیکه رابطه بین دو جدول charity و photos از نوع یک به چند باشد، شما باید در جدول photos فیلدی بنام charity_id اضافه کنید تا مشخص شود هر تصویری به کدام خیریه تعلق دارد.(قرار دادن ستون photo_id در جدول charity اشتباه است). حال می توانید پس از انتخاب تصویر مورد نظر برای یک خیریه خاص مقدار فیلد charity_id رکورد مربوطه را بروز رسانی نمایید.
به جمع هزاران کاربر اینستاگرامی روکسو بپیوندید.