سلام و وقت بخیر.
موقع تمرین 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
@maedehtoosi
سلام
احتمالا کاربر لاگین نکرده
چون این خطا داره میگه که شما دارین متد products رو روی یک مقدار null فراخوانی میکنیم
@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);
یعنی چی باید آرایه باشه؟
@vahidrezazadeh
خب کامل درست شد. نمیدونم کاری که کردم درسته یا نه.
این تیکه رو توی دیتابیس تغییر دادم:
$table->unsignedInteger('user_id')->nullable();
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟