سلام من تازه شروع به یادگیری لاراول کردم و دارم دوره ای از نسخه قبلی لاراول رو از همین سایت مشاهده می کنم و هر جایی که همخونی با لاارول 8 نداره رو عوض می کنم
وقتی به روت اصلی میرم برای مشاهده مقالات می نویسه
ErrorException
Undefined variable $articles (View: C:\Users\User\Desktop\hesammousavi\resources\views\index.blade.php)
http://localhost:8000/
$$articles is undefined
کد های فایل index.blade.php
@extends('layouts.master')
@section('content')
<h1 class="my-4">Page Heading
<small>Secondary Text</small>
</h1>
<!-- Blog Post -->
@foreach ($articles as $article)
<div class="card mb-4">
<img class="card-img-top" src="http://placehold.it/750x300" alt="Card image cap">
<div class="card-body">
<h2 class="card-title">{{ $article->title }}</h2>
<p class="card-text">{{ $article->body }}</p>
<a href="/articles/{{ $article->slug }}" class="btn btn-primary">Read More →</a>
</div>
<div class="card-footer text-muted">
Posted on January 1, 2017 by
<a href="#">Start Bootstrap</a>
</div>
</div>
@endforeach
<!-- Pagination -->
<ul class="pagination justify-content-center mb-4">
<li class="page-item">
<a class="page-link" href="#">← Older</a>
</li>
<li class="page-item disabled">
<a class="page-link" href="#">Newer →</a>
</li>
</ul>
@endsection
@section('sidebar')
@parent
<!-- Side Widget -->
<div class="card my-4">
<h5 class="card-header">Side Bar Widget</h5>
<div class="card-body">
You can put anything you want inside of these side widgets. They are easy to use, and feature the new Bootstrap
4 card containers!
</div>
</div>
@endsection
کد های HomeController
<?php
namespace App\Http\Controllers;
use App\Models\Article;
use Illuminate\Http\Request;
class HomeController extends Controller
{
public function home()
{
$articles = Article::orderBy('id', 'desc')->get();
return view('index', compact($articles));
}
public function about()
{
return view('about');
}
public function contact()
{
return view('contact');
}
}
اگر دوستی می تونه بهم کمک کنه خیلی ممنون :)))
@nimageneral
@hesammousavi
@milad
@endworld
@mhyeganeh
@moeinbabaei
سلام. دو روش برای پاس دادن اطلاعات به ویوو ها توضیح میدم هرکدوم راحت بودین استفاده کنید.
اولی: ( متغیر ها بصورت آرایه key value ارسال میشن و شما میتونید key رو در ویوو دریافت کنید.
public function home()
{
$articles = Article::orderBy('id', 'desc')->get();
return view('index', ['articles' => $articles]);
}
دومی: ( روش خودتون. دقت کنید داخل compact باید آرگومانتون که همون اسم مغیر هست بدون $ بصورت استرینگ پاس داده باشه.
public function home()
{
$articles = Article::orderBy('id', 'desc')->get();
return view('index', compact('articles'));
}
موفق باشید
@SobhanDadkhah
@endworld
@hesammousavi
یه سوال دارم چه شکلی میشه همزمان دو تا use هم نام داشته باشیم ؟
use App\Http\Controllers\ArticleController;
use App\Http\Controllers\Admin\ArticleController;
@moeinbabaei
در خصوص سوال دومتون استفاده دو تا کلاس با نام یکسان میتونید موقع use کردن با استفاده از as براشون نام مستعار متفاوت ایجاد کنید و از این به بعد در اون فایل از این نام مستعار متفاوت استفاده کنید. مثلا اینجوری:
use App\Http\Controllers\ArticleController;
use App\Http\Controllers\Admin\ArticleController as AdminArticleController;
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟