campaign-edianeh-98

دوره مجازی Laravel - جلسه 46 (آخر) - آماده سازی سرور VPS و پیاده سازی لاراول بر روی آن



visibility  
mode_comment   ۱۵۳

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

info توجه

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

ثبت نام در آموزش حرفه ای لاراول

comment دیدگاه کاربران
dino moradi replyپاسخ

مرسی از راهنماییتون، من برای action فرم شرط گذاشتم که آیا کاربر وجود داره یا نه اگه وجود داشت که url آپدیت باشه اگه نه که url ایجاد کاربر جدید باشه به نظرتون این کار، کاری اصولی و درستی هستش؟ ممنون

کیوان علی محمدی

این کار هم می تونه راه حل باشه و مشکل خاصی نداره.

مهدی بیکی replyپاسخ

جناب علی محمدی
جواب سوال اول و نه دوم از طریق راه حل که فرمودین حل نشد لطفا از انی دسک برای پشتیبانی ما دانشجو در یک زمان مشخص که وقت دارین بذارین از طریق دیدگاه من جواب نمیگیریم .من سوال اولم رو از طریق بوت استرپ واچ جواب گرفتم ولی از طریق کامپونت جواب نمیگیریم. احتمالا ورژن بوت استرپ زمان تنظیم فیلم با بوت استرپ حال آپدیت تر شده

کیوان علی محمدی

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

زهرا شاهسواری replyپاسخ

سلام. منوی ادمین لود شدنی، خوب تو مرورگر بالا نمیاد. بهم چسبیده و تو در تو هس. از cdnاستفاده کردنی خوب لود میشه ولی فایل rtlاش نیس.چه کار باید بکنم؟

کیوان علی محمدی

سلام می تونید از سایت های آنلاین برای تبدیل به rtl استفاده کنید.

مهدی بیکی replyپاسخ

سلام جناب علی محمدی
در فصل 19 موقعی که ریلیشن یک به چند درست میکنیم موقعی که name درتوی لیست بلید
{{ $payment->user->name }} قسمت name میگذاریم ریلیشن کار نمیکنه و خطای زیر می دهدتمام مراحل مثل فیلم آموزشی رفتم لطفا راهنمایی بفرمایید ? Trying to get property of non-object

ErrorException in 5e185c055b7d10070d3537dccdb7710f19b2d060.php line 2:
Trying to get property of non-object (View: C:\xampp\htdocs\larafiles\resources\views\admin\payment\item.blade.php) (View: C:\xampp\htdocs\larafiles\resources\views\admin\payment\item.blade.php)

کیوان علی محمدی

سلام حتما این آبجکت از مدل payment رابطه با مدل user نداره که این خطا رو میده. در دیتابیس می تونید یه چک ساده انجام بدید و مطمئن شید از این موضوع.

dino moradi replyپاسخ

سلام و درود، خسته نباشید استاد بزرگوار، مشکلی واسه من پیش اومده امیدوارم بتونید راهنمایی کنید، هنگام اجرا کردن migrate اگر جدولی شامل کلید خارجی باشه و اون جدول قبل از جدولی که کلید اصلی رو داره اجرا بشه به خطا میخوره چون هنوز جدول دارای کلید اصلی اجرا نشده و کلید خارجی ایجاد نمیشه من migration ی که حاوی کلید خارجی بود رو حذف کردم و migrate رو اجرا کردم تا اول جدولی که دارای کلید اصلی هست اجرا بشه بعد migrationی که حاوی کلید خارجی هست رو اجرا کردم تا مشکلم حل بشه ولی خب این روش کلا خیلی دردسر داره ممنون میشم راهنمایی کنید

کیوان علی محمدی

سلام. با تغییر نام migration ها می تونید مشکل رو حل کنید.

زهرا شاهسواری replyپاسخ

سلام. می بخشین موقعی که به لیست کاربرا، کاربر جدید ایجاد می کنم و اضافه می کنم با این ارور مواجه میشم. ایرادش چیه؟Type error: Argument 3 passed to Illuminate\Validation\Factory::make() must be of the type array, null given, called in C:\xampp\htdocs\larafiles\vendor\laravel\framework\src\Illuminate\Foundation\Http\FormRequest.php on line 84

کیوان علی محمدی

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

dino moradi replyپاسخ

سلام و خسته نباشید، هنگام اجرا کردن migration، migration ها به ترتیب تاریخ ایجاد، اجرا می شوند، حالا اگر migrationی داری کلید خارجی باشه و قبل از migrationی اجرا بشه که کلید اصلی رو داره خطا میگیره این مشکل رو چطور میشه حل کرد ممنون

کیوان علی محمدی

سلام. migration ها رو که ایجاد کردید می تونید در نهایت با تغییر تاریخ در نام اونها این مشکل رو حل کنید.

etedadi replyپاسخ

سلام..
من میخوام به عنوان مثال از متد create استفاده کنم و درست هم کار میکنه ولی توی phpstorm چرا شناخته نمیشه و زیرش خط زرد کشیده میشه ؟

username::create($user_data);
کیوان علی محمدی

سلام این توابعی که به صورت استاتیک فراخوانی میشن معمولا به صورت autocomplete نمایش داده نمیشن

مریم علیشاهی replyپاسخ

سلام من تازه لاراول رو شروع کردم و دارم طبق فیلم های دوره مجازی پیش میرم ، اما به یک ارور برخوردم و اون هم اینه که تو جلسه نه که اطلاعات فرم قراره تو دیتابیس ذخیره شه مال من نمیشه و میگه پسورد ناله در حالیکه نیست !

        Schema::create(‘user’, function (Blueprint $table) {//کد مایگریت
            $table->increments(‘id’);
            $table->string(‘name’);
            $table->string(’email’, 128)->unique();
            $table->string(‘password’);
            $table->integer(‘wallet’)->default(0);
            $table->tinyInteger(‘role’)->default(0);
            $table->rememberToken();
            $table->timestamps();
        });


    $user_data = [// کد کنترلر
            ‘name’ => request()->input(‘name’),
            ’email’ => request()->input(’email’),
            ‘password’ => request()->input(‘password’),
            ‘wallet’ => request()->input(‘wallet’),
            ‘role’ => request()->input(‘role’),

        ];
        User::create($user_data);



  protected $guarded = [‘role’]; کد مدل
    protected $hidden = [
        ‘password’, ‘remember_token’,
    ];

کیوان علی محمدی

سلام لطفا فرم html رو بررسی کنید و اسم فیلد ها رو یک بار دیگه چک کنید.

مریم علیشاهی replyپاسخ

سلام یک سوال دیگه در جلسه ده ولیدیشن ها رو فارسی ردم طبق آموزش ولی باز انگلیسی نشونشو ن میده؟ آخه چرا؟

namespace App\Http\Controllers\Admin;

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

class UsersController extends Controller
{
    public function index()
    {
        return view(‘admin.user.index’)->with([‘panel_title’ => ‘لیست کاربران’ ]);
    }

    public function create()
    {
        return view(‘admin.user.create’)->with([‘panel_title’ => ‘ثبت کاربر جدید’ ]);
    }

    public function store()
    {
        $this->validate(request(),[
            ‘name’ => ‘required’,
            ’email’ => ‘required|email’,
            ‘password’ => ‘required|min:6|max:12’,
        ],[
                ‘name.require’ => ‘وارد کردن نام ضروری است’,
                ’email.require’ => ‘وارد کردن ایمیل ضروری است’,
                ‘password.require’ => ‘وارد کردن پسورد ضروری است’,
                ’email.email’ => ‘لطفا ایمیل صحیح وارد کنید’,
                ‘password.min’ => ‘پسورد نمیواند از شش کاراکتر کمتر باشد’,
                ‘password.max’ => ‘پسورد نمیواند از 12 کاراکتر بیشتر باشد’
            ]);

        $user_data = [
            ‘name’ => request()->input(‘name’),
            ’email’ => request()->input(’email’),
            ‘password’ => request()->input(‘password’),
            ‘wallet’ => request()->input(‘wallet’),
            ‘role’ => request()->input(‘role’)

        ];
        User::create($user_data);
    }
}
کیوان علی محمدی

سلام در قسمت message ها باید به جای require از required استفاده کنید.

مهدی بیکی replyپاسخ

سلام در جلسه 25 من node_modules رو نصب کردم و node.js هم یکبار درشاخه خود لارافایلز نصب کردم و هم در شاخه ویندوز ولی موقعی که npm install را نصب می کنم
> node-sass@4.11.0 install C:\xampp\htdocs\larafiles\node_modules\node-sass
> node scripts/install.js

‘node’ is not recognized as an internal or external command,
operable program or batch file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {“os”:”darwin”,”arch”:”any”} (cur
rent: {“os”:”win32″,”arch”:”x64″})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! node-sass@4.11.0 install: `node scripts/install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the node-sass@4.11.0 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\pc1\AppData\Roaming\npm-cache\_logs\2019-01-07T09_39_52_485Z-debug.log
این ارور را می دهد و بعد که gulp می خوام بزنم این پیغام را می دهد
C:\xampp\htdocs\larafiles>gulp
‘gulp’ is not recognized as an internal or external command,
operable program or batch file.
ولی توی فیلم آموزشی mix sass اجرا میشه ولی برای من خطای operable program or batch file می آید؟ لطفا راهنمایی بفرمایید

کیوان علی محمدی

سلام لطفا node_modules رو حذف کنید و دوباره اجرا کنید دستور gulp رو حتما قبلش به صورت global با دستور npm i -g gulp نصب کنید.

Reza Jashnsaz replyپاسخ

سلام آقای علی محمدی خسته نباشید
یه مشاوره میخواستم
من html css bootstrap php رو تقریبا مسلطم و این دوره لاراول رو هم گذروندم کامل . حالا میخوام ببینم واسه استخدام تو شرکتای نرم افزاری شما پیشنهاد میکنید در کنار لاراول یه زبان back end دیگه مثل nodejs یاد بگیرم یا پیشنهاد میکنید مهارت های front end مثل jquery یا react یا vue یا angular و اینا رو یاد بگیرم ؟
ممنون

کیوان علی محمدی

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

etedadi replyپاسخ

سلام.
تو لاراول چهطوری میشه از api یه برنامه دیگه (مثلا اونم لاراول) استفاده کرد.اگه تو اموزش ها نیست لطفا یه منبع معرفی کنید.

کیوان علی محمدی

سلام می تونید از پکیج هایی مثل guzzel استفاده کنید برای درخواست های http و خوندن اطلاعات از api های دیگه.

کوروش ابراهیم زاده replyپاسخ

دموی پروژه نهایی رو لطفا ادرسش رو بدید یا فیلمی رو که دموی نهایی رو داره رایگان کنید من تا دمو نهایی و نتیجه رو نبینم نمیتونم بخرم!

کوروش ابراهیم زاده replyپاسخ

دموی نهایی و نتیجه کار را چطوری میشه دید ؟‌بدون دیدن نتیجه نهایی من چطور بخرم!؟

محسن محمدخانی replyپاسخ

سلام
من یک جدول دارم به نام prj_user که در این جدول اطلاعات کاربران ذخیره میشه.
فیلد ها جدول در زیر نوشته شده.
برای این جدول یه مدل ساختم به نام UserCustom.php در آدرس app /Models
کد های زیر کد مدل UserCustom.php است.
من می خوام auth::attempt و بقیه متد های کلاس auth به این جدول custom و این مدل custom وصل بشه.
من دیگه نمی خوام از مدل User و جدول User پیش فرض لاراول استفاده کنم.
مشکل اصلی در فیلدهای جدوله. لاراول به طور پیش فرض فیلد email و password می خواد.درصورتیکه من اون ها رو تغییر دادم به usr_email و usr_pass
آیا میشه لاراول در این حد سفارشی سازی کرد؟
آیا همچنین چیزی امکان داره؟

CREATE TABLE IF NOT EXISTS `prj_user` (
`usr_user_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`usr_firstname` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
`usr_lastname` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
`usr_email` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
`usr_pass` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
`usr_created_at` timestamp NULL DEFAULT NULL,
`usr_updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`usr_user_id`),
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class UserCustom extends Model
{
  public $table=’prj_user’;
  public $primaryKey=’usr_user_id’;

  const CREATED_AT=’usr_created_at’;
  const UPDATED_AT=’usr_updated_at’;

  protected $fillable = [
    ‘usr_user_id’,
    ‘usr_firstname’,
    ‘usr_lastname’,
    ‘usr_email’,
    ‘usr_pass’,
    ‘usr_lastname’,
    ‘usr_created_at’,
    ‘usr_updated_at’,
  ];

}
Parviz Ansaryan replyپاسخ

با سلام
میخواستم بدونم خروجی نهایی پروژه حتما نیاز به vps داره؟ یا میشه روی هاست های اشتراکی هم که جدیدا پشتیبانی لاراول هم دارن ریخت؟
از پکیج خاصی استفاده میکنید که نیاز به vps داره؟ اگر اینطوره جایگزین میشه کرد یا حذف کرد؟
سپاس

کیوان علی محمدی

سلام اگر از لاراول پشتیبانی میکنه می تونید پروژه رو روی اون بیارید بالا در غیر این صورت حتما باید سرور اختصاصی باشه.کلا لاراول چون با composer کار میکنه برای مدیریت پکیج ها به همین خاطر نیاز به سرور داره و قابل حذف نیست این مورد.

etedadi replyپاسخ

سلام..
من وقتی میخوام پروژه های لاراولی رو که از همکارم گرفتم اجرا کنم به این ارور میخورم:
سرچ هم کردم بیشتر یه سری دستورات برای لینوکس هست منتها من رو ویندوز کار میکنم

In StreamHandler.php line 107:

  The stream or file "C:\Users\mohammad\Desktop\git\liveamooz\storage\logs/laravel.log" could not be opened: failed to open stream: No such file or directory
کیوان علی محمدی

این خطا نوشته که دسترسی به فایل laravel.log وجود نداره یا اینکه فایل اصلی ایجاد نشده

حسین شفیعی replyپاسخ

داده های حجیم رو چطوری دانلود کنیم؟

کیوان علی محمدی

سلام دقیق تر توضیح بدین چی میخواین.

مجتبی صفدری replyپاسخ

با سلام
در قسمت توضیحات دوره و یکی از موردهای چرا لاراول ” اجرای آزمایش‎ های واحد متعدد با دستورات بسیار ساده ” رو نوشتید , ایا این مورد در آموزش هست ؟

کیوان علی محمدی

سلام این مورد در آموزش قرار نداره.

همراز روان پویان replyپاسخ

سلام خدا قوت و ممنون از آموزش شما
یک سول داشتم
من یک صفحه دارم که در نهایت post میشود و یک صفحه دیگری را در کنترلر فراخوانی مینماید، بعد از اینکه صفحه دوم بارگزاری میشود ، اگر کاربر این صفحه را رفرش کند ، مجددا متدی که منجر به فراخوانی شدن این صفحه شده است اجرا میشود ، اگر در این متد عملیات insert و … انجام گرفته باشد ، با رفرش شدن صفحه ، مجددا این عملیاتها تکرار میشود، آیا راهی برای جلوگیری کردن از این اتفاق وجود دارد؟
سپاس از توجه شما

کیوان علی محمدی

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

Parviz Ansaryan replyپاسخ

در این حد پشتیبانیتون ضعیفه؟
یک ماهه من منتظرم سوالم رو جواب بدین تا تصمیمم رو برای خرید بگیرم اما ظاهرا فقط به کسایی پاسخ میدین که خرید کردن
کامنتم تو جلسه آخر دوره هست

کیوان علی محمدی

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

مریم علیشاهی replyپاسخ

سلام و وقت بخیر
من باید مختصات یک نقطه روی مپ رو با نوع داده پوینت ذخیره کنم ، مختصاتم یک عدد مثل اینه
35.741830903939466, 51.37413024902344
اما حتی دستی هم که این عدد را در دیتابیس میزنم خطا میده و اینسرت شه
ممنون میشم بفرمایید چطور در لاراول میتونم از نوع پوینت استفاده کنم و مختصات ذخیره کنم.

کیوان علی محمدی

سلام. می تونید توی migrations از point استفاده کنید که نوع فیلد جدول رو برای ذخیره سازی point آماده کرده باشه.برای وارد کردن داده هم می تونید از این کد استفاده کنید.

ModelName::firstOrCreate(
array(
..//other fields
'location' => DB::raw("(GeomFromText('POINT(37.774929 -122.419415)'))")
)
);

adnan rostami replyپاسخ

سلام خود فایلی که شما نوشتین رو ما نمی تونیم دانلود کنیم؟

کیوان علی محمدی

سلام کدوم فایل؟

adnan rostami replyپاسخ

سلام خود فایلی که شما نوشتین رو ما نمی تونیم دانلود کنیم؟
لطفا قرار دهید و یا لینک را بدهید ممنون

adnan rostami replyپاسخ

چندتا سوال دیگه هم داشتم این بود که برای یه مراحلی یاد گرفتیم که اگه کاربر بود وارد صفحه ی ادمین نشیم ، حالا چجوری تعریف کنیم که خود ادمین ، یک فرد رو از کاربر به ادمین تغییر بده؟
برای بخش ایمیل ،نوشتنش رو متوجه شدم ،ولی اون کلمه ی یکتا و مشخص رو چجوری باید تتعریف کنیم هم تو ایمیل هم براا تاییدش ؟
بعضی از سایت ها ، یه بخشی دارن بهه اسم لیست سیاه ، و اینکه کامنت ها بدون تایید ادمین وارد سایت نمیشه ،
یا اگه بی احترامی کردن وارد یه جا دیگه میشن ، در واقع بن میشن ، چجوری بنویسیمش؟

کیوان علی محمدی

1 – می تونید در فرم ویرایش کاربر که فقط مثلا دسترسی ادمین داشته باشه role کاربر رو تغییر بدین به هر role دیگه ای.
2 – منظورتون از کلمه یکتا رو متوجه نشدم؟
3 – می تونید در دیتابیس اون لیست سیاه رو ایجاد کنید و در زمان ارسال کامنت با استفاده از preg_match چک کنید اون متن کامنت حاوی اون کلمات هست یا نه که اگر بود می تونید وضعیت اون کاربر رو از فعال به غیر فعال تغییر بدین و وضعیت اون نظر رو هم به عدم نمایش تغییر بدین.

کوروش ابراهیم زاده replyپاسخ

دموی پروژه نهایی رو کجا میتونم ببینم ؟

کیوان علی محمدی

متاسفانه دمو رو جایی قرار ندادیم.

adnan rostami replyپاسخ

چرا پیام های من پاک میشن؟

کیوان علی محمدی

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

مهدی بیکی replyپاسخ

باسلام وعرض خسته نباشی
میشه لطفا راهنمایی بفرمایید که یک شخصی ثبت نام کرده توی سایت و بعد ما یک جدول رزرویشن داریم و اون اطلاعات ثبت میکنه بعد وقتی ثبت نام میکنه برای تمامی کاربرهای سایت قابل نمایش هست چطوری اون رکورد از جدول که ایشون ثبت کرده قابل نمایش برای تمامی کاربرها نباشه.
باید از میدلور استفاده کنیم و میخواستم بدون چه دستوری بایدبنویسم لطفا راهنمایی بفرمایید
باسپاس فراوان.

کیوان علی محمدی

سلام دوست عزیز این یک شرط ساده هست که می تونید در بخش نمایش مطلب در سایت اعمال کنید و مانع از نمایش دادن اون مطلب برای همه کاربران بشید. می تونید در کنترلر چک کنید مثلا این شخص ثبت نام شده برای این بخش خاص یا مثلا این دسترسی رو داره یا نه ، اگر این شرط true بود مطلب نمایش داده بشه در غیر این صورت یک صفحه با پیغام عدم دسترسی نمایش داده بشه برای عموم.

مهدی بیکی replyپاسخ

من جدولی دارم که اطلاعات استرداد یک ریفاند نشان می دهد بعد می خواهم
اگر شماره موبایل این جدول با شماره موبایل عضو شونده برابر بود فقط اطلاعات رکورد ثبت شده خودش نشان بدهد نه سایر رکوردهای اعضای دیگر. من هر کاری می کنم اطلاعات سایر اعضا که عضو شدند نشان ندهد. نمی شود
لطفا راهنمایی بفرمایید

@if(\Illuminate\Support\Facades\Auth::check() == $refund->tel )

{{ $refund->id }}
{{ $refund->id_buy_flight }}
{{ $refund->refrence_flight }}
{{ $refund->user->name }}
{{ \Morilog\Jalali\Jalalian::forge($refund->created_at)->format(‘Y-m-d’) }}
{{ \Morilog\Jalali\Jalalian::forge($refund->date_odat)->format(‘Y-m-d’) }}
{{ $refund->amount_pay }}

@endif

کیوان علی محمدی

سلام دوست عزیز. در بخش کوئری دریافت داده ها می تونید یک where ساده قرار بدید و فقط رکوردهایی که برای اون موبایل هست رو نمایش بدید

adnan rostami replyپاسخ

سلام routing یعنی چی؟

کیوان علی محمدی

سلام routeing یعنی مسیر یابی درخواست در برنامه و رسوندن اونها به نقطه مناسب برای تولید و ارسال پاسخ به سمت کاربر

مهدی بیکی replyپاسخ

سلام جناب علیمحمدی
من نزدیک دوهفته منتظر که جواب بدین خیلی از مشکلات حل کردم فقط من الان تمام پکیج هامو نصب کردم نمیدونم چرا صفحه این Apache2 Ubuntu Default Page میاد مشکل کجاست

ارسال نظرات

کاربر گرامی، امکان ارسال نظر و پشتیبانی برای دوره های مجازی فقط برای دانشجویان این دوره امکان پذیر می باشد.

1 2