MHT
6 سال پیش توسط MHT مطرح شد
3 پاسخ

ارور ذخیره شدن اطلاعات بر روی دیتابیس

سلام و وقت بخیر.
موقع تمرین Eloquent Relationships به این ارور برخوردم:Call to a member function products() on null
نمیدونم برای چی این ارور رو میگه چون روی یک سیستم دیگه با همین کدها نتیجه گرفتم. اینها هم کدهاش هستن:

public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('user_id');
$table->string('name');
$table->integer('weight');
$table->integer('price');
$table->text('description');
$table->timestamps();
$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade')
->onUpdate('cascade');
});
}

public function user(){
return $this->belongsTo(User::class);
}

public function products(){
return $this->hasMany(Product::class);
}

public function store(Request $request)
{
Auth::user()->products()->create($request->except('_token'));
dd('finish');
}

به این خط ارور میده:

    Auth::user()->products()->create($request->except('_token'));

ممکنه مشکل از ذخیره شدن تو دیتابیس باشه؟ چون به صورت دستی نمیتونم چیزی وارد کنم.
این لینک رو هم دیدم، مشابه اشکال من هست اما درست نشد.
https://stackoverflow.com/questions/36925728/laravel-5-1-create-a-product-linked-to-user-id


ثبت پرسش جدید
وحید رضازاده
تخصص : برنامه نویس
@vahidrezazadeh 6 سال پیش مطرح شد
1

@maedehtoosi
سلام
احتمالا کاربر لاگین نکرده
چون این خطا داره میگه که شما دارین متد products رو روی یک مقدار null فراخوانی میکنیم


MHT
@mahiHT 6 سال پیش مطرح شد
0

@vahidrezazadeh
اوه، واقعا ممنونم. اصلا یادم رفته بود php artisan make:auth رو بنویسم.
ولی الان هم این ارور رو میده:
Argument 1 passed to Illuminate\Database\Eloquent\Relations\HasOneOrMany::create() must be of the type array, object given, called in C:\laragon\www\laravel\app\Http\Controllers\ProductController.php on line 33

یعنی به این خط:
Auth::user()->products()->create($request);
یعنی چی باید آرایه باشه؟


MHT
@mahiHT 6 سال پیش مطرح شد
0

@vahidrezazadeh
خب کامل درست شد. نمیدونم کاری که کردم درسته یا نه.
این تیکه رو توی دیتابیس تغییر دادم:
$table->unsignedInteger('user_id')->nullable();


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام