Akash_kushwaha's avatar

Spatie Media not Showing Image

Hello everyone, I'm working with spatie media library for image uploading. but now i'm facing a weird issue. I'm not able to get Image for only one Model and It is working fine for other models. please check the image I have provided below. https://prnt.sc/-11kBwZKVAEa My Controller

	<?php

	namespace App\Http\Controllers\Admin;

	use App\Http\Controllers\Controller;
	use Illuminate\Support\Facades\Request as FacadesRequest;
	use Inertia\Inertia;

	class PeaceTimeIssueController extends Controller
	{
		public function index()
		{
    		$peace_issues = PeaceTimeIssue::join('years', "years.id", '=', 'peace_time_issues.year')->join('denominations', "denominations.id", '=', 'peace_time_issues.denomination')->orderBy('years.data_column', 'ASC')->orderBy('denominations.data_column', "asc")->latest('peace_time_issues.created_at')->paginate(10)->onEachSide(2)->appends(FacadesRequest::all())->through(
        		function (PeaceTimeIssue $peace_issue){
           			$peace_issue->RelationalData();
            		return $peace_issue;
        		}
   		 );

    		return Inertia::render('Admin/PeaceTimeIssue/Index', [
        		'dynamicData' => $peace_issues,
        		'filters' => FacadesRequest::only(['search', 'sort'])
    		]);
		}
	}

My Model

	<?php

	namespace App\Models;

	use Illuminate\Database\Eloquent\Factories\HasFactory;
	use Illuminate\Database\Eloquent\Model;
	use Illuminate\Database\Eloquent\SoftDeletes;
	use Illuminate\Support\Facades\Session;
	use Spatie\MediaLibrary\HasMedia;
	use Spatie\MediaLibrary\InteractsWithMedia;

	class PeaceTimeIssue extends Model implements HasMedia
	{
		use HasFactory, SoftDeletes, InteractsWithMedia;

		public function RelationalData()
		{
    		dd($this->getMedia("peace-image-front"));
    		if($this->getFirstMedia("peace-image-front")){
        		$this->image_front = $this->getFirstMedia("peace-image-front")->toHtml();
    		}
   			 if($this->getFirstMedia("peace-image-back")){
        		$this->image_back = $this->getFirstMedia("peace-image-back")->toHtml();
    		}
		}
	}

https://prnt.sc/WfL2G3dEGDVy

0 likes
1 reply
Akash_kushwaha's avatar
Akash_kushwaha
OP
Best Answer
Level 2

Fixed it. Join was conflicting with the model's query. So selected data only from the parent model.

<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Request as FacadesRequest;
use Inertia\Inertia;

class PeaceTimeIssueController extends Controller
{
	public function index()
	{
		$peace_issues = PeaceTimeIssue::select('peace_time_issues.*')->join('years', "years.id", '=', 'peace_time_issues.year')->join('denominations', "denominations.id", '=', 'peace_time_issues.denomination')->orderBy('years.data_column', 'ASC')->orderBy('denominations.data_column', "asc")->latest('peace_time_issues.created_at')->paginate(10)->onEachSide(2)->appends(FacadesRequest::all())->through(
            function (PeaceTimeIssue $peace_issue){
                $peace_issue->RelationalData();
                return $peace_issue;
            }
        );

		return Inertia::render('Admin/PeaceTimeIssue/Index', [
    		'dynamicData' => $peace_issues,
    		'filters' => FacadesRequest::only(['search', 'sort'])
		]);
	}
}

Please or to participate in this conversation.