در ادامه مطلب می توانید مثالی از مطالب گفته شده را در قالب پروژه ای با ویژگی های زیر مشاهده کنید:
نمایش مقالات با نام نویسنده.
(دیتابیس و اجزای تیبل ها (مقالات،دسته بندی ها و نام نویسنده) دستی وارد شده اند.)
routes->web.php:
<?php
Route::get('/', "ArticleController@showHomePage");
Route::get('/article/{id}', "ArticleController@showSingleArticle");
resources->views->welcome.blade.php:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>صفحه اصلی | آموزش</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
<link rel="stylesheet" href="{{ asset('/css/style.css') }}">
</head>
<body>
<div class="container-fluid">
<header class="row">
<div class="col">
<section class="row text-center">
<div class="col">
<nav class="navbar navbar-expand-lg navbar-dark">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</nav>
</div>
</section>
<section class="row text-center">
<div class="col">
<h1>
به وبسایت آموزشی خوش آمدید
</h1>
<p>
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Aperiam quam repellendus perspiciatis nemo sequi nisi facere labore quidem unde tenetur, culpa reprehenderit, mollitia quo fugit molestiae eligendi doloremque. Alias, veritatis.
</p>
<a href="" class="btn btn-success btn-lg">
ثبت نام
</a>
<a href="" class="btn btn-info btn-lg">
ورود
</a>
</div>
</section>
</div>
</header>
<div class="container">
<main class="row">
<section class="col-lg-7 card pt-4 pb-4 pr-4 pl-4">
@foreach ($articles as $article)
<article>
<h3>
{{ $article->title }}
</h3>
<small>
{{ $article->user->name }}
</small>
<p>
{{ $article->body }}
</p>
<a href="{{ url('article') }}/{{ $article->id }}"> ظرفی که بالا تو فوریچ تعریف شده آیدیشو بگیر
بیشتر...
</a>
</article>
@endforeach
</section>
<section class="col-lg-4 offset-lg-1 card pt-4 pb-4 pr-4 pl-4">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Tempora praesentium molestiae quibusdam numquam, saepe iste totam consequuntur corporis eaque excepturi ut error ipsum! Error rem perspiciatis dignissimos minima qui vero.
</section>
</main>
</div>
</div>
</body>
</html>
public:
یک پوشه با اسم images با یک فایل با اسم jpg.11 میسازیم.
یک پوشه با اسم css با یک فایل با اسم style.css میسازیم.
app->Http->Controllers->ArticleController.php:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Article; دقت
class ArticleController extends Controller
{
public function showHomePage()
{
$result = Article::with('user')->get(); نکته در مدل
return view('welcome' , ['articles'=>$result]);
}
public function showSingleArticle($id) آیدی ای که در روتر نوشته شده. خود لاراول میفرسته اینجا ما میگیریمش
{
$article = Article::where('id',$id)->first();
به شرطی که id عش مساوی با id خط بالا باشه، first: اونی که پیدا کردی آیدیش مسسساویه اولیو بفرس (همون یه دونس دیگه :|)
return view("SingleArticle" , ["article"=>$article]);
}
}
database->migrations->create_articles_category_table:
...
Schema::create('articles_category', function (Blueprint $table) {
$table->id();
$table->string('title',500);
$table->timestamps();
});
...
database->migrations->create_articles_table:
...
Schema::create('articles', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('body');
$table->unsignedBigInteger('category_id');
$table->unsignedBigInteger('user_id');
$table->timestamps();
$table->foreign('category_id')->references('id')->on('articles_category')->onDelete('cascade');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
یوسر پاک شد مقالاتشم پاک شه
});
...
.env:
...
DB_PORT=3306
DB_DATABASE=salam
...
:config->database.php
...
'mysql' => [
...
'engine' => "InnoDB",
...
app->Article.php:
...
class Article extends Model
{
public function user()
{
متعلق است به، ارتباط دادن (مربوط به with در کنترلر)
return $this->belongsTo('App\User', 'user_id', 'id');
فارن کی در جدول آرتیکل: user_id آیدی در جدول یوزر:id
}
}
resources->views->SingleArticle.blade.php:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>صفحه اصلی | آموزش</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
<link rel="stylesheet" href="{{ asset('/css/style.css') }}">
</head>
<body>
<div class="container-fluid">
<header class="row">
<div class="col">
<section class="row text-center">
<div class="col">
<nav class="navbar navbar-expand-lg navbar-dark">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</nav>
</div>
</section>
<section class="row text-center">
<div class="col">
<h1>
{{ $article->title }}
</h1>
</div>
</section>
</div>
</header>
<div class="container">
<main class="row">
<section class="col-lg-7 card pt-4 pb-4 pr-4 pl-4">
<h1>
{{ $article->title }}
</h1>
<p>
{!! $article->body !!}
</p>
</section>
<section class="col-lg-4 offset-lg-1 card pt-4 pb-4 pr-4 pl-4">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Tempora praesentium molestiae quibusdam numquam, saepe iste totam consequuntur corporis eaque excepturi ut error ipsum! Error rem perspiciatis dignissimos minima qui vero.
</section>
</main>
</div>
</div>
</body>
</html>