سلام
در لاراول 10 هنگامی که لاگین میکنم صفحه ارورر با این عنوان میاد:
Undefined variable $ulinks (View: C:\xampp\htdocs\lesanolarz\resources\views\front\ulinks.blade.php)
برنامه به این صورت هستش که در صفحه اصلی می خوام هم نمونه کارها بگذارم، هم لینک های مفید که هر کدوم دارای جدول و کنترلر و مادل جداگانه هستش و از سمت بک مقداردهی میشن و البته کارها درست انجام میشن ولی وقتی می خوام لاگین انجام بدم ارورر میده و هرچقدرهم سرچ کردم به نتیجه نرسیدم.
با تشکر
controller:
<?php
namespace App\Http\Controllers\front;
use App\Models\front\Portfolio;
use App\Http\Controllers\Controller;
use App\Models\front\Ulink;
class HomeController extends Controller
{
public function index()
{
$portfolios = Portfolio::orderBy('id', "DESC")->get();
$tags = $portfolios->unique('tag');
$ulinks=Ulink::all();
return view('front.main', compact('portfolios', 'tags' ,'ulinks'));
}
}
model:
<?php
namespace App\Models\front;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Ulink extends Model
{
use HasFactory;
protected $fillable = ['name', 'link', 'description', 'status'];
}
web:
Route::get('/', [HomeController::class, "index"])->name('home');
blade:
<div class="footer-links">
<h4> لینک های مفید</h4>
<ul>
@foreach ($ulinks as $ulink)
<li><a href="{{ $ulink->link }}">{{ $ulink->name }}</a></li>
@endforeach
</ul>
</div>
سلام دوست عزیز
قبل ارسال unlink به ویو چک کن اگر undefined هست خودت مقدار ارایه خالی بهش بده به شکل زیر
$unlinks=$unlinks??[];
میتونی روی همون خط اصلی هم قرارش بدی
$ulinks=Ulink::all()??[];
یا توی ویو خودت یه ایف قبل حلقه بزاری که اگر مقداری داشت unlinks بعد بیاد حلقه فور اجرا بشه
این چک کردنه یه چیز طبیعیه
وقتی داده ای نداری این مشکل پیش میاد
سلام @salar.mohammad2013
خیلی ممنون، صفحه لاگین باز شد ولی تو صفحه لاگین لینک های مفید رو نمیاره
دوست عزیز کد شما به نظر ایرادی نداره اما احتمالا شما صفحه دیگری رو داری دنبالش میگردی و داده بهش ارسال نشده
سعی کن dd بگیری توی کنترلرت در مرحله اول ببینی اصلا داده ای داره ulink یا نه به کنترلر درست دسترسی داری یا نه
گاها تداخل روت و کنترلر ادم اشتباه میکنه
بعد چک کنی این view که بهش ارسال کردی front.main این بخش footer دقیقا توی همون ویو هست یا نه
مرحله مرحله همینطوری باید چک کنی که چرا داده نداری و نمیتونی نمایش بدی
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟