• 1400/01/16

آپلود عکس در پلی مورفیک لاراول :

سلام خسته نباشید. من یه رابطه پلیمورفیک one to one بین جدول post ها و image دارم چون جداول دیگه ای هم دارم که از image استفاده میکنن

همچینن دارم با api کار میکنم و خروجی json دارم.

مشکلی که دارم تو آپلود کردن عکس هست .. وقتی یک پستی رو با استفاده از متد store در postcontroller میخوام ایجاد کنم و به وسیله ش عکس رو هم همونجا آپلود کنم. 

با کدی که نوشتم عکس ذخیره میشه در دیتابیس اما فکر میکنم کدم غلط باشه چون نمیتونم دسترسی داشته باشم به عکس یه پست.

روابطم به صورت زیر هستش: 

مدل پست:

public function image(){
        return $this->morphOne(Image::class , 'imageable');
    }

مدل image :

 

class Image extends Model
{


    protected $fillable = [
        'url'
    ];

    public function imageable(){
        return $this->morphTo();
    }
}

store() in postController :

 

public function store(Request $request )
    {
        $post = new Post;
        $post->category_id = $request->get('category_id');
        $post->title = $request->get('title');
        $post->body = $request->get('body');
        $post->study_time = $request->get('study_time');
        $post->tags = $request->get('tags');
         // $post->user_id = JWTAuth::user()->id;
        $post->user_id = $request->get('user_id');
        $tags = explode(",", $request->tags);
        $post->tag($tags);
        $post->save();

        $image = new Image;
        $image->url=$request->file('url')->getClientOriginalName();
        $fileName = $image.'_'.time();

        $image->url=$request->file('url')->move(public_path('images/posts'), $fileName);

        $image->imageable_type = Post::class;
        $image->imageable_id = $post->id;
        $post->image()->save($image);

        return response()->json($post , 201);
    }

حقیقت من قسمت   

$post->save();

رو بعد از 

$post->image()->save($image);

قرار داده بودم اما سیو نمیشد و ارور های مختلف میداد مثل none object و imageable_id  null 
برای همین گفتم اول پست رو سیو کنم بعد آی دیش رو بشناسه عکسی که میخواد آپلود شه

باز ممنون میشم بهم بگین مشکل کارم کجاست

  • 1400/01/17
  • ساعت 10:22

با سلام خدمت شما همراه عزیز

 

 

الان مشکل کارتون کجاست؟ عکس و رابطه ها توی دیتایس ذخیره میشن؟ ای دی ها درست ذخیره میشه؟ 


logo-samandehi