ارور Call to a member function course() on null

9 ماه پیش توسط جواد کرمی آپدیت شد
آفلاین
user-avatar
محمد نمازی ( 14767 تجربه )
4 سال پیش
تخصص : توسعه دهنده وب

لینک کوتاه اشتراک گذاری

1

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

کد کنترولر :

<?php

namespace AppHttpControllersadmin;

use AppCourse;
use AppHttpRequestsCourseRequest;
use IlluminateHttpRequest;
use AppHttpControllersController;

class CourseController extends AdminController
{
    /**
     * Display a listing of the resource.
     *
     * @return IlluminateHttpResponse
     */
    public function index()
    {
        $courses = Course::latest()->paginate(20);
        return view('admin.courses.all' , compact('courses'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return IlluminateHttpResponse
     */
    public function create()
    {
        return view('admin.courses.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param CourseRequest|Request $request
     * @return IlluminateHttpResponse
     */
    public function store(CourseRequest $request)
    {
        $imagesUrl = $this->uploadImages($request->file('images'));
        auth()->user()->course()->create(array_merge($request->all() , [ 'images' => $imagesUrl]));

        return redirect(route('courses.index'));
    }

    /**
     * Display the specified resource.
     *
     * @param  AppCourse  $course
     * @return IlluminateHttpResponse
     */
    public function show(Course $course)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  AppCourse  $course
     * @return IlluminateHttpResponse
     */
    public function edit(Course $course)
    {
        return view('admin.courses.edit' , compact('course'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  IlluminateHttpRequest  $request
     * @param  AppCourse  $course
     * @return IlluminateHttpResponse
     */
    public function update(Request $request, Course $course)
    {
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  AppCourse  $course
     * @return IlluminateHttpResponse
     */
    public function destroy(Course $course)
    {
        $course->delete();
        return redirect(route('courses.index'));
    }
}
بهترین پاسخ
آفلاین
user-avatar
حسام موسوی
4 سال پیش

من متن ارور شما رو نمی بینم اصلا
فک کنم یادتون رفت متن ارور رو قرار بدید اما احتمال میدم برای قسمت store کردن یه course باشه دلیل این موضوع هم اینکه کاربر شما لاگین نکرده برای همین زمانی که کد زیر رو می زنید

auth()->user()

براتون null بر میگردونه و course نمیتونه بر روی null اعمال بشه
ببینید من همه اینا رو توضیح دادم لطفا با دقت ویدیوها رو مشاهده کنید و خواهش میکنم صبر بخرج بدید
کد زیر رو برای تست اینکه لاگین هست یا خیر وارد کنید

public function store(CourseRequest $request)
    {
        $imagesUrl = $this->uploadImages($request->file('images'));
         dd(auth()->user())
        auth()->user()->course()->create(array_merge($request->all() , [ 'images' => $imagesUrl]));

        return redirect(route('courses.index'));
    }
آفلاین
user-avatar
حسام موسوی ( 473587 تجربه )
4 سال پیش
تخصص : طراح و برنامه نویس

لینک کوتاه اشتراک گذاری

0

من متن ارور شما رو نمی بینم اصلا
فک کنم یادتون رفت متن ارور رو قرار بدید اما احتمال میدم برای قسمت store کردن یه course باشه دلیل این موضوع هم اینکه کاربر شما لاگین نکرده برای همین زمانی که کد زیر رو می زنید

auth()->user()

براتون null بر میگردونه و course نمیتونه بر روی null اعمال بشه
ببینید من همه اینا رو توضیح دادم لطفا با دقت ویدیوها رو مشاهده کنید و خواهش میکنم صبر بخرج بدید
کد زیر رو برای تست اینکه لاگین هست یا خیر وارد کنید

public function store(CourseRequest $request)
    {
        $imagesUrl = $this->uploadImages($request->file('images'));
         dd(auth()->user())
        auth()->user()->course()->create(array_merge($request->all() , [ 'images' => $imagesUrl]));

        return redirect(route('courses.index'));
    }
آفلاین
user-avatar
جواد کرمی ( 44736 تجربه )
2 سال پیش
تخصص : توسعه دهنده وب و اپلیکیشن | فرانت اند

لینک کوتاه اشتراک گذاری

0

@hesammousavi
جناب موسوی من هم دقیقا الان به همین مشکل برخوردم. قسمت چهارم دوره هستم و این مشکل توی قسمت مقالات برام پیش اومده. و اصلا تا این قسمت ما یوزری نساختیم که بخواد لاگین کنه و مقاله ارسال کنه.

آفلاین
user-avatar
حسام موسوی ( 473587 تجربه )
2 سال پیش
تخصص : طراح و برنامه نویس

لینک کوتاه اشتراک گذاری

0

@javadkarami14
یه کاربر بسازید .

آفلاین
user-avatar
جواد کرمی ( 44736 تجربه )
2 سال پیش
تخصص : توسعه دهنده وب و اپلیکیشن | فرانت اند

لینک کوتاه اشتراک گذاری

-1

@hesammousavi
خب ما تا اینجا کلا سیستم احراز هویت و ثبت نام کاربر رو نداریم. و سوالی که پیش میاد اینه که چجوری میشه توی آموزش با همین شرایطی که کاربری وجود نداره با این خطا مواجه نمیشیم؟ درواقع میخوام بدونم این تفاوته از کجا میاد چون فکر کنم تا اینجا هیچ قسمتی از ویدیو هارو جا ننداختم. میتونه بخاطر تفاوت ورژن لاراول باشه؟

آفلاین
user-avatar
حسام موسوی ( 473587 تجربه )
2 سال پیش
تخصص : طراح و برنامه نویس

لینک کوتاه اشتراک گذاری

0

@javadkarami14
بببینید ما هنوز سیستم احرازهویت رو پیاده نکردیم که بگیم فقط کاربری به این روت دسترسی پیدا میکنه که اول لاگین کنه و بعد مدیر باشه
در بخش ‌های بعدی پیاده‌اش میکنیم برای همین کاربری وجود نداره. شما در طی جلسات بعدی میفهمید داستان چیه
ولی برای اینکه بخش ارسال مقاله رو اوکی کنیم .بدونه توجه به اینکه هنوز احرازهویت رو کار نکردم اومدیم گفتیم خودتون فعلا با دستور create یه کاربر بسازید و لاگین کنید، تا ادامه داستان رو در جلسات بعد پیاده کنیم

آفلاین
user-avatar
vahid ( 1100 تجربه )
9 ماه پیش

لینک کوتاه اشتراک گذاری

0

سلام خوب هستید؟
منم به همین مشکل خوردم
شما چطوری رفعش کردید؟
@javadkarami

آفلاین
user-avatar
جواد کرمی ( 44736 تجربه )
9 ماه پیش
تخصص : توسعه دهنده وب و اپلیکیشن | فرانت اند

لینک کوتاه اشتراک گذاری

0

@rasekhivahid
همونطور که جناب موسوی هم اشاره کردن با استفاده از دستور create به صورت دستی یک کاربر رو اضافه کردم.
توی Controller ها مثلا متدی که صفحه اصلی رو فراخوانی میکنه به این صورت عمل کنید:

return create([
'name' => 'vahid',
'email' => '[email protected]',
]);

همه مواردی که توی جدول users دارید رو به این صورت مقدار دهی کنید، یکبار صفحه اصلی رو فراخوانی کنید کاربر ساخته میشه. بعدش این کد رو کامنت یا پاکش کنید.

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.