مدرسه آنلاین پیبانُ

زیر مجموعه ای از وب سایــت بزرگ pibano.com

مدرسه آنلاین پیبانُ

زیر مجموعه ای از وب سایــت بزرگ pibano.com

در ادامه مطلب می توانید مثالی از مطالب گفته شده را در قالب پروژه ای با ویژگی های زیر مشاهده کنید:

نمایش مقالات با نام نویسنده.

(دیتابیس و اجزای تیبل ها (مقالات،دسته بندی ها و نام نویسنده) دستی وارد شده اند.)

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>

 

  • امیررضا ابراهیمی

css

database

html

laravel

php

دیتابیس

لاراول