آموزش ایجاد پروژه جدید در لاراول - آموزش طراحی سایت شخصی با لاراول قسمت اول

‏  25 دقیقه
۰۲ فروردین ۱۳۹۹
آموزش ایجاد پروژه جدید در لاراول - آموزش طراحی سایت شخصی با لاراول قسمت اول

لاراول از محبوب‌ترین فریم‌ورک‌های PHP است که به‌تازگی بسیار پیشرفت داشته است. در این مقاله سعی داریم که به شما به صورت پروژه محور ساخت یک سایت شخصی با لاراول را آموزش بدیم. در این آموزش ما از نسخه ۷ لاراول استفاده می‌کنیم.

پیش نیاز این آموزش، آشنایی حداکثری با HTML & CSS & Js و همچنین آشنایی با لاراول است.

در این آموزش ما سعی بر آن داریم که بیشترین تمرکزمان را روی بک اند و کدهای لاراول بگذاریم.

فهرست محتوای این مقاله

ایجاد پروژه‌ی لاراول:

در اولین مرحله‌ی آموزش نیاز داریم پروژه‌ی لاراول را ایجاد کنیم. از طریق دستور زیر می‌توانید لاراول را به صورت مستقیم دانلود کرده و اجرا کنید.

composer create-project --prefer-dist laravel/laravel blog

در این دستور blog اسم پروژه‌ی شما می‌باشد و می‌توانید از هر اسمی استفاده کنید.

اتصال به دیتابیس:

در مرحله بعد نیاز داریم برای پروژه‌ی خود یک دیتابیس ایجاد کنیم و همچنین دیتابیس مورد نظر را به پروژه خود متصل کنیم.

برای ساخت دیتابیس اگر از ویندوز و نرم افزار xampp استفاده می‌کنید نیاز دارید بعد از اجرای نرم افزار xampp آدرس localhost/phpmyadmin را در مرورگر خود وارد کنید.

از قسمت سمت چپ گزینه New را کلیک کنید تا دیتابیس جدیدی برای پروژه ایجاد کنیم. یک نام برای دیتابیس خود وارد کنید و در قسمت Collation گزینه‌ی ut8_persian_ci را انتخاب کنید تا مشکلی برای وارد کردن اطلاعات فارسی در دیتابیس به وجود نیاید.

حالا باید دیتابیس خود را به پروژه خود متصل کنیم. در فایل‌های پروژه فایلی به نام env. وجود دارد که اطلاعات کلی پروژه اعم از اطلاعات دیتابیس در آن وجود دارد.

توجه: اگر از لینوکس استفاده می‌کنید، این فایل بخاطر نقطه‌ی اول اسمش به صورت پنهان است، می‌توانید با زدن کلید‌های ctrl + H ، فایل‌های پنهان را قابل دیدن کنید.

در این فایل در قسمت زیر اطلاعات دیتابیس وجود دارد.

آموزش ایجاد پروژه جدید در لاراول

اطلاعات مربوط به سیستم خود و همچنین اسم دیتابیس را وارد کنید و فایل را ذخیره کنید.

توجه: اگر از قبل پروژه را اجرا کرده‌اید، نیاز است که دوباره اجرا کنید تا تغییرات اعمال شود.

اجرای فایل‌های Migration:

لاراول به صورت پیش‌فرض حاوی یک مدل User و همچنین مایگریشن‌های آن هست، ما در این پروژه از همین مدل برای احراز هویت پنل مدیریت استفاده می‌کنیم و دیگر نیازی به ساخت مدل جدید نداریم.

همچنین فایل‌های مایگریشن این مدل نیز در پوشه database/migrations وجود دارد و فقط کافی‌ است عملیات migrate را انجام دهیم.

با دستور زیر می‌توانید فایل‌های مایگریشن را اجرا کنید.

php artisan migrate

در صورت درست بودن اطلاعات دیتابیس شما این فایل‌ها اجرا خواهند شد و می‌توانید در phpmyadmin خود مشاهده کنید که جداول ساخته شده اند.

توجه: دقت کنید ما در این پروژه از مدل User پیش‌فرض لاراول برای احراز هویت استفاده کرده‌ایم، یعنی ورود با رمز‌عبور و ایمیل قابل انجام است.

 

احراز هویت:

برای احراز هویت پنل مدیریت ما نیز از پکیج خود لاراول استفاده می‌کنیم. در نسخه‌های جدید لاراول پکیجی به عنوان laravel/ui تمامی بخش‌های آماده‌ی ظاهر لاراول را در خود قرار داده است. در اولین مرحله نیاز است این پکیج را نصب کنیم.

composer require laravel/ui

بعد از نصب این پکیج نیاز داریم از آن برای ساخت قسمت‌های آماده‌ی احراز هویت لاراول دستور زیر را وارد کنیم.

php artisan ui vue --auth

با اجرای این دستور کنترلرها (Controller)، فایل‌های Blade و همچنین Route‌های مخصوص احراز هویت ساخته شده اند.

آموزش ایجاد پروژه جدید در لاراول آموزش ایجاد پروژه جدید در لاراول

بعد از اجرای دستور قبل نیاز دارید فایل‌های استایل دهی صفحات ورود و ثبت نام را کامپایل کنید. برای این کار از دستور زیر استفاده کنید.

npm install && npm run dev

دقت کنید برای این‌کار و استفاده از استایل خود لاراول باید npm را روی سیستم خود نصب کنید.

آموزش نصب npm را می‌توانید از سایت خود NPM مشاهده کنید.

حالا اگر پروژه را اجرا کنید و صفحه اصلی را باز کنید، می‌بینید بالای صفحه سمت راست دو گزینه Login و Register اضافه شده‌اند.

وقتی صفحه ورود را باز کنید باید با صفحه‌ی زیر مواجه شوید.

آموزش ایجاد پروژه جدید در لاراول

برای وارد شدن نیاز به یک حساب کاربری داریم ولی در حال حاضر ما در جدول users هیچ کاربری نداریم، این‌کار را به راحتی از قسمت Register که در نوار بالا قابل مشاهده هست می‌توانیم انجام دهیم.

بعد از ثبت نام کردن می‌توانید به راحتی وارد شوید ولی ما در این سایت نیاز نداریم که هر کاربر بتواند ثبت نام کند و به صفحه‌ی پنل مدیریت دسترسی داشته باشد در نتیجه باید قسمت Register را برداریم.

برای این‌کار باید Route قسمت ثبت نام را غیر فعال کنیم.

در فایل routes/web.php قسمت ‌Auth::routes(); را به کد زیر تبدیل کنید.

Auth::routes(['register' => false]);

با این کار ما Route بخش ثبت نام را غیرفعال کردیم و مشاهده می‌کنید که دیگر Register وجود ندارد.

ساخت داشبور پنل مدیریت:

در این مرحله به سراغ ساخت صفحه‌ی اول (پیشخوان) پنل مدیریت می‌رویم.

بعد از ورود اگر به آدرس مرورگر دقت کنید می‌بینید آدرس به صورت localhost:8000/home است. در مرحله اول باید این آدرس را تغییر دهیم.

از فایل routes/web.php قسمتی که مربوط به آدرس home/ است را به صورت زیر تغییر دهید.

Route::get('/admin/dashboard', 'Admin\[email protected]')->name('admin');

 

حال برای کنترلر‌های بخش مدیریت یک پوشه در مسیر app/Http/Controllers با اسم Admin می‌سازیم و در آن یک کنترلر جدید برای پنل مدیریت می‌سازیم.

این کار را با دستور زیر در ترمینال سیستم خود می‌توانید انجام دهید.

php artisan make:controller Admin/DashboardController

این دستور به صورت مستقیم در پوشه Admin که بالاتر ذکر کردیم یک کنترلر با عنوان DashboardController می‌سازد.

حال در این فایل کدهای زیر را جایگذاری کنید.

<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class DashboardController extends Controller
{
    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Contracts\Support\Renderable
     */
    public function index()
    {
        return view('admin.dashboard');
    }
}

یک متد index برای صفحه‌ی پیشخوان پنل مدیریت ساختیم که فایل ویو مربوط به داشبورد را برمی‌گرداند.

توجه: در متد index از ویو admin.dashboard استفاده کرده‌ایم که یعنی در فایل‌های ویو، پوشه admin و فایل dashboard.blade.php را برمی‌گرداند.

برای ساخت فایل بالا باید یک پوشه در مسیر اصلی پروژه و پوشه‌ی resources/views با عنوان admin بسازیم. این کار را انجام می‌دهیم که فایل‌های view بخش پنل مدیریت را راحت‌تر مدیریت کنیم و از بخش ظاهری سایت جدا کنیم.

حالا باید آدرس مربوط به عملیات بعد از ورود را تغییر دهیم. برای این کار در فایل app/Providers/RouteServiceProvider.php یک متغیر ثابت به عنوان آدرس صفحه‌ی پیشخوان مدیریت را وارد کنیم. این کد را به فایل بالا اضافه کنید.

public const AdminDashboard = '/admin/dashboard';

 

حالا در فایل app/Http/Controllers/Auth/LoginController.php قسمت زیر را به این صورت تغییر دهید.

protected $redirectTo = RouteServiceProvider::AdminDashboard;

 

حالا بعد از ورود به آدرس localhost:8000/admin/dashboard منتقل خواهید شد.

 

ساماندهی Route ها:

برای اینکه روی Route‌های پروژه بتوانیم مدیریت بهتری داشته باشیم می‌خواهیم آنها را ساماندهی کنیم. برای این کار آدرس‌های مربوط به پنل مدیریت یک پیشوند admin و آدرس‌های مربوط به سایت اصلی را بدون پیشوند قرار می‌دهیم.

کد زیر را در فایل routes/web.php قرار دهید.

<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});
//MAIN SITE ROUTES

Auth::routes(['register' => false]);

Route::group(['prefix' => 'admin', 'namespace' => 'Admin'], function () {
    Route::get('/dashboard', '[email protected]')->name('admin');
    //ADMIN PANEL ROUTES
});

 

حال آدرس‌های قبل نیز وجود دارند و همچنین از این به بعد آدرس‌های مربوط به پنل مدیریت را در قسمت  ADMIN PANEL ROUTES وارد می‌کنیم و همچنین آدرس‌های سایت اصلی در قسمت بالا که کامنت شده است.

 

طراحی سایدبار پنل مدیریت:

در پنل مدیریت نیاز به یک سایدبار داریم که بتوانیم بین تب‌های موجود جابجا شویم و عملیات‌های مختلف را انجام دهیم.

برای این‌کار در مسیر resources/views/admin یک پوشه به اسم layout می‌سازیم و فایلی به اسم panel.blade.php را اضافه می‌کنیم و کدهای زیر را درون آن قرار می‌دهیم.

<!doctype html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- CSRF Token -->
    <meta name="csrf-token" content="{{ csrf_token() }}">

    <title>{{ config('app.name', 'Laravel') }}</title>

    <!-- Scripts -->
    <script src="{{ asset('js/app.js') }}" defer></script>

    <!-- Fonts -->
    <link rel="dns-prefetch" href="//fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">

    <!-- Styles -->
    <link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<body>
<div id="app">
    <nav class="navbar navbar-expand-md navbar-light bg-white shadow-sm">
        <div class="container">
            <a class="navbar-brand" href="{{ url('/') }}">
                {{ config('app.name', 'Laravel') }}
            </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">
                <!-- Left Side Of Navbar -->
                <ul class="navbar-nav mr-auto">

                </ul>

                <!-- Right Side Of Navbar -->
                <ul class="navbar-nav ml-auto">
                    <!-- Authentication Links -->
                    @guest
                        <li class="nav-item">
                            <a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
                        </li>
                        @if (Route::has('register'))
                            <li class="nav-item">
                                <a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
                            </li>
                        @endif
                    @else
                        <li class="nav-item dropdown">
                            <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button"
                               data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
                                {{ Auth::user()->name }} <span class="caret"></span>
                            </a>

                            <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
                                <a class="dropdown-item" href="{{ route('logout') }}"
                                   onclick="event.preventDefault();
                                                     document.getElementById('logout-form').submit();">
                                    {{ __('Logout') }}
                                </a>

                                <form id="logout-form" action="{{ route('logout') }}" method="POST"
                                      style="display: none;">
                                    @csrf
                                </form>
                            </div>
                        </li>
                    @endguest
                </ul>
            </div>
        </div>
    </nav>

    <main class="py-4">
        <div class="container">
            <div class="row">
                <div class="col-md-3">
                    @include('admin.layouts.sidebar')
                </div>
                <div class="col-md-9">
                    @yield('content')
                </div>
            </div>
        </div>
    </main>
</div>
</body>
</html>

در کد بالا ما یک بخش کلی برای فایل‌های Blade قسمت مدیریت ساختیم و بقیه صفحات مربوط از این فایل ارث بری می‌کنند.

برای مثال نیاز است فایل resources/views/admin/dashboard.blade.php را به شکل زیر تغییر دهیم.

@extends('admin.layouts.panel')

@section('content')
    <div class="card">
        <div class="card-header">Dashboard</div>

        <div class="card-body">
            @if (session('status'))
                <div class="alert alert-success" role="alert">
                    {{ session('status') }}
                </div>
            @endif

            You are logged in!
        </div>
    </div>
@endsection

 

حالا فایل sidebar.blade.php را در مسیر resources/views/admin/layouts بسازید و کد‌های زیر را درون آن قرار دهید.

<div class="card">
    <div class="card-header">Sidebar</div>
    <div class="card-body">
        @if (session('status'))
            <div class="alert alert-success" role="alert">
                {{ session('status') }}
            </div>
        @endif

        <ul>
            <li><a href="#">Dashboard</a></li>
            <li><a href="#">Portfolios</a></li>
            <li><a href="#">Categories</a></li>
            <li><a href="#">Posts</a></li>
            <li><a href="#">Customer Comments</a></li>
            <li><a href="#">Comments</a></li>
            <li><a href="#">Settings</a></li>
        </ul>
    </div>
</div>

 

حال باید بعد از ورود با تصویر زیر رو به رو شوید.

آموزش ایجاد پروژه جدید در لاراول

ساخت مدل نمونه کارها:

برای هر قسمت از وب‌سایت که نیاز به ذخیره اطلاعات آن در دیتابیس داریم، باید مدل بسازیم.

اولین قدم ساخت مدل نمونه کار (Portfolio) است. برای این‌کار از دستور زیر در ترمینال استفاده می‌کنیم.

php artisan make:model Portfolio -mc

با این دستور مدل نمونه کار را همراه با کنترلر و مایگریشن آن ساختیم.

حال باید در قسمت مایگریشن اطلاعات مورد نیاز برای ذخیره در دیتابیس را وارد کنیم.

برای مثال از نمونه کار‌ها مقدار عنوان، تصویر شاخص، توضیح کوتاه، رتبه (بین 1 تا 5 )، کارفرما ( فقط نام)، لینک پروژه، تاریخ اتمام پروژه و جزییات پروژه را نیاز داریم تا در دیتابیس ذخیره کنیم. فایل مایگریشن portfolios_table به شکل زیر است.

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use \Illuminate\Support\Facades\DB;

class CreatePortfoliosTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('portfolios', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->string('image');
            $table->text('description');
            $table->enum('rank', ['1','2','3','4','5'])->default('1');
            $table->string('client')->nullable();
            $table->string('link')->nullable();
            $table->timestamp('completion_date')->useCurrent();
            $table->text('content');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('portfolios');
    }
}

 

ستون‌های جدول نمونه کارها را در بالا مشاهده می‌کنید.

برای قسمت رتبه (rank) از یک ویژگی به اسم enum استفاده کرده‌ایم، این مقدار یعنی اینکه این ستون از جدول فقط یکی از همین مقادیر را می‌پذیرد و این‌کار را برای کاهش خطای ثبت اطلاعات در دیتابیس انجام می‌دهیم زمانی که قصد داریم فقط از یک سری مقادیر استفاده کنیم.

ستون client و link نیز را nullable قرار دادیم، یعنی می‌توانیم آن را خالی بگذاریم و مشکلی پیش نخواهد آمد.

در ستون completion_date به آن یک ویژگی useCurrent دادیم یعنی زمانی که مقداری برای این ستون وارد نشد از زمان حالا استفاده کند.

برای اجرای فایل مایگریشن از دستور زیر استفاده کنید.

php artisan migrate

 

حالا در دیتابیس خود می‌توانید جدول نمونه کارها (portfolios) را مشاهده کنید.

مدل نمونه کار (Portfolio:)

در مدل نمونه کار نیاز داریم ویژگی‌های (Attributes) را در متغیر fillable تعریف کنیم تا بتوانیم برای ساخت و ویرایش از آنها استفاده کنیم. ویژگی‌های مدل همان ستون‌های جدول نمونه کار هستن. فایل Portfolio.php در مسیر app را به صورت زیر قرار دهید.

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Portfolio extends Model
{
    protected $fillable = ['title', 'image', 'description', 'rank', 'client', 'link', 'completion_date','content'];
}

 

تا اینجا ما قسمت‌های ظاهری پنل مدیریت، احراز هویت مدیریت و مدل نمونه کار را ساختیم و مراحل اولیه مدل نمونه کار را انجام دادیم همچنین جدول نمونه کار را ساختیم و در دیتابیس وارد کردیم.

ساخت ظاهر لیست نمونه کارها:

برای نمایش لیستی از نمونه کارهای موجود در سایت نیاز داریم در اولین مرحله یک فایل View برای لیست بسازیم.

در مسیر resources/views/admin یک پوشه با نام portfolios می‌سازیم و در آن فایل list.blade.php را ایجاد می‌کنیم و کدهای زیر را در آن قرار می‌دهیم.

@extends('admin.layouts.panel')

@section('content')
    <div class="card">
        <div class="card-header">Portfolios</div>

        <div class="card-body">
            @if (session('status'))
                <div class="alert alert-success" role="alert">
                    {{ session('status') }}
                </div>
            @endif

                <table class="table table-hover">
                    <thead class="thead-dark">
                    <tr>
                        <th scope="col">id</th>
                        <th width="20px" scope="col">Image</th>
                        <th scope="col">Title</th>
                        <th scope="col">Description</th>
                        <th scope="col">Client</th>
                        <th scope="col">Created At</th>
                    </tr>
                    </thead>
                    <tbody>
                    <tr>
                        <th scope="row">1</th>
                        <td><img src="{{ asset('img/portfolio-details.jpg') }}" alt="Portfolio" class="img-fluid"></td>
                        <td>Otto</td>
                        <td>Otto</td>
                        <td>Otto</td>
                        <td>@mdo</td>
                    </tr>
                    <tr>
                        <th scope="row">1</th>
                        <td><img src="{{ asset('img/portfolio-details.jpg') }}" alt="Portfolio" class="img-fluid"></td>
                        <td>Otto</td>
                        <td>Otto</td>
                        <td>Otto</td>
                        <td>@mdo</td>
                    </tr><tr>
                        <th scope="row">1</th>
                        <td><img src="{{ asset('img/portfolio-details.jpg') }}" alt="Portfolio" class="img-fluid rounded mx-auto d-block"></td>
                        <td>Otto</td>
                        <td>Otto</td>
                        <td>Otto</td>
                        <td>@mdo</td>
                    </tr>
                    </tbody>
                </table>
        </div>
    </div>
@stop

در فایل بالا ما در اولین مرحله از ویو panel در مسیر resources/views/admin/layouts ارث برده ایم تا بقیه محتوای صفحه از آن ارث برده شود و فقط قسمت وسط صفحه را تغییر دهیم تا در نوشتن کد صرفه‌جویی کنیم.

بعد از آن از یک جدول استفاده کرده‌ایم و مقادیر عنوان، توضیح کوتاه، عکس، کارفرما و زمان ایجاد نمونه کار را قرار دادیم.

در این صفحه در حال حاضر یک سری اطلاعات فرضی برای تست گذاشتیم که در ادامه از مقادیر واقعی استفاده می‌کنیم.

در کدهای بالا از یک تابع به اسم asset استفاده کرده‌ایم و یک تصویر را در جدول قرار دادیم.

این تابع برای استفاده از منابع مانند فایل‌های css و js و همچنین تصاویر که در مسیر اصلی پروژه و پوشه public وجود دارند، به کار برده می‌شود. در اینجا ما یک پوشه به اسم img در public ساختیم و یک تصویر در آن قرار دادیم.

جمع‌بندی

مراحل اولیه‌ی پروژه اعم از نصب لاراول، اتصال با دیتابیس و قسمت احراز هویت را انجام دادیم. برای احراز هویت پنل مدیریت از مدل User پیش‌فرض لاراول استفاده کردیم و همچنین برای فرانت از پکیج laravel/ui استفاده کردیم تا در بخش فرانت پروژه سرعت بیشتری داشته باشیم و زمان کمتری صرف کنیم. برای آدرس‌های پروژه از group در Route‌ها استفاده کردیم تا کد تمیزتر و کمتری بنویسیم. مدل نمونه کارها را ساختیم و همچنین ظاهر لیست نمونه کارها را ایجاد کردیم.

در قسمت بعد ظاهر فرم اضافه کردن نمونه کار و همچنین لیست و ویرایش و حذف برای مدل نمونه کار را خواهیم ساخت. با ما همراه باشید.

چه امتیازی به این مقاله می دید؟
نویسنده وحید حسنی
از دوست داران دنیای تکنولوژی مخصوصا دنیای وب از توسعه دهندگان وب مخصوصا بک اند از عاشقان پی اچ پی مخصوصا لاراول از دیوانگان کار کردن مخصوصا در آی ویرا ;-)
ارسال دیدگاه
خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :

 

نظرات کاربران

کاربر

سلام طبق آموزش پیش رفتم از جایی که داشبورد به کار اضافه می شود با پیغام Target class [Admin\DashboardController] does not exist. مواجه می شوم. دو بار مسیر آموزش را بررسی کردم درست نشد، چکار باید کرد؟

نازنین کریمی مقدم

سلام. دستور اضافه کردن داشبورد بسته به ورژن لاراول نصبی متفاوته.
پیشنهاد میکنم پاسخ تیک خورده این پست رو مطالعه کنید، به صورت کامل مراحل رو توضیح داده. براساس نسخه لاراول راه مخصوص به خودشو در پیش بگیرید.

سجاد

سلام
ممنون بابت اموزش خوبتون
سوالی داشتم
اگر یک اسکریپت با لاراول نوشته شده باشه، میشه بعدا (دسترسی به توسعه دهنده اسکریپت نیست) یک سری تغییراتی رو در بکند پروژه بوجود اورد؟ (مثلا اسکریپت یک فرم ثبت اطلاعات داره ، یک سری فیلد های این فرم رو بیشتر کرد و فیلد جدید اضافه کرد)؟؟

نازنین کریمی مقدم

درود. بله مشکلی نداره.
فقط دقت کنید که فیلدها رو حتما روی دیتابیس هم تعریف کنید و برای ویرایش کد حتما از یک توسعه دهنده آشنا با لاراول کمک بگیرید.

babak

من لاراول کار کردم
شما خیلی مفید مراحل را توضیح دادید
ممنون عالی بود.

وحید حسنی

خیلی ممنونم..موفق باشید

علی مجیدی

بسيار عالي…