کد های اسلایدر رو بذار توی یه blade جدا
و جاهایی که میخواهی داشته باشیش از include استفاده کن
@include('slider')
کد های اسلایدر رو بذار توی یه blade جدا
و جاهایی که میخواهی داشته باشیش از include استفاده کن
@include('slider')
تو ویو صفحه اصلی وقتی اسلایدر داینامیک میکنم نمایش نمیده و ارور زیر برمیگردونه
Undefined variable: sliders (View: C:\xampp\htdocs\laravelpro\resources\views\slider.blade.php)
ویو
<div class="carousel-inner">
@foreach ($sliders as $slider)
<div class="carousel-item active">
<img src="{{ $slider->image }}" class="d-block w-100" alt="" height="400">
</div>
@endforeach
</div>
روت
Route::get('slider' , 'front\SliderController@index');
Route::get('slider/{slider}' , 'front\SliderController@single')->name('slider');
کنترلر
$sliders = Slider::get();
return view('slider' , compact('sliders'));
سلام
@ali.bayat
چرا بیایم یک blade بسازیم جایی که خواستیم include کنیم؟
راحت ترین کار اینه زیاد هم سختی نمیکشیم
البته شاید فقط نظر من باشه 😂
دستور کنسول :
php artisan make:component Rp76
هر کامپوننت یک ویو داره یک کنترلر به ادرس های :
app\View\Components\Rp76.php
resources\views\components\Rp76.blade.php
برای شما که فقط اسلایدر دارید باید اینکار رو کنید :
داخل سازنده این کامپوننت باید بیای اطلاعات خودت رو واکشی کنی ( من اطلاعات کلی کنترلر رو میذارم)
<?php
namespace App\View\Components;
use Illuminate\View\Component;
class Rp76 extends Component
{
public $gallery;
/**
* Create a new component instance.
*
* @return void
*/
public function __construct()
{
$this->gallery=Slider::All();
}
/**
* Get the view / contents that represent the component.
*
* @return \Illuminate\Contracts\View\View|string
*/
public function render()
{
return view('components.Rp76');
}
}
و ویو این کامپوننت میشه این
@foreach ($gallery as $img)
<div class="col-md-2 mx-2 col">
<div class="temp" style="background: url('{{asset($img)}}')"></div>
</div>
@endforeach
به این صورت هم فراخوانی میشه
<x-Rp76/>
اگر میخوای به این کامپوننت ورودی بدی باید به این صورت عمل کنی
به مثال زیر توجه کن :
// controller
<?php
namespace App\View\Components;
use Illuminate\View\Component;
class Rp76 extends Component
{
public $esm;
/**
* Create a new component instance.
*
* @return void
*/
public function __construct($name)
{
$this->esm=$name;
}
/**
* Get the view / contents that represent the component.
*
* @return \Illuminate\Contracts\View\View|string
*/
public function render()
{
return view('components.rp76');
}
}
// view
<div>
{{$esm}}
</div>
// نحوه استفاده
<x-Rp76 name="reza parisan" />
اگر اخر تگ html / نذاری ارور میده
@Rp76
ممنون از شما
من میخواستم اسلایدر به شکل یک ماژول باشه و براش ماژول تعریف کردم
این مواردی که فرمودید کنترلر و بخش اخر متوجه نشدم
بعد از اینکه کامپوننت تعریف کردم تو بخش اسلایدر برای اینه از دیتابیس بخونه این رو بزارم ؟
<x-Rp76 name="reza parisan" />
@ali.bayat
سلام فکر کنم بد برداشت کردین
فقط اون خط زیر اسمتون برای شما هست
بقیه اون ها در راستای سوال بود
من موفق نشدم به جواب برسم و بیشتر سر درگم شدم
راه درست استفاده از کامپوننت ها هست ؟
من میخام روش درست استفاده کنم
و برای کامپوننت ها هم به مشکل خوردم و موفق نشدم
برو سرچ کن ببین کامپوننت ها چطور کار میکنند بعدا میتونی مشکلت رو حل کنی
من یک توضیح کامل دادم
اگر کارساز نبود از یک اموزش تصویری استفاده کن
@Rp76
چیز بدرد بخوری پیدا نکردم متاسفانه
من کارایی که انجام دادمو میگم بی زحمت بگید اشتباهم کجاست
اول از همه یک ماژول اسلایدر ایجاد کردم و دیتابیس و ویو روت و مدل اکیه
بد طبق گفته شما کامپوننت slider ایجاد کردم تو ویو app
<?php
namespace App\View\Components;
use Illuminate\View\Component;
use Modules\Slider\Entities\front;
class Slider extends Component
{
/**
* Create a new component instance.
*
* @return void
*/
public function __construct()
{
$this->Slider::All();
}
/**
* Get the view / contents that represent the component.
*
* @return \Illuminate\View\View|string
*/
public function render()
{
return view('components.slider');
}
}
ویو کامپوننت
<section>
<div id="carouselExampleCaptions" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carouselExampleCaptions" data-slide-to="0" class="active"></li>
<li data-target="#carouselExampleCaptions" data-slide-to="1"></li>
<li data-target="#carouselExampleCaptions" data-slide-to="2"></li>
</ol>
<div class="carousel-inner">
@foreach ($sliders as $slider)
<div class="carousel-item active">
<img src="{{('$slider->image')}}" class="d-block w-100" alt="ابیسا" height="400">
</div>
@endforeach
<a class="carousel-control-prev" href="#carouselExampleCaptions" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">قبلی</span>
</a>
<a class="carousel-control-next" href="#carouselExampleCaptions" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">بعدی</span>
</a>
</div>
</section>
جایی که میخام اسلایدر نمایش بده اینجا نمیدونم چیکار کنم و یک ارور دارم
<x-slider/>
متن ارور
Undefined property: App\View\Components\Slider::$Slider (View: C:\xampp\htdocs\laravelpro\resources\views\index.blade.php)
بدون استفاده از کامپوننت تونستم اسلایدر داینامیک کنم
ولی عکس ها عوض نمیشه ........... فقط عکس اول نمایش میده
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟