首页 > 解决方案 > 我收到这个错误。知道如何删除这个 .Creating default object from empty value laravel 5.8

问题描述

我想做的是用户可以将消息发送到另一条消息到目前为止我所做的是..我创建了一个名为 Message 的模型并且我在模型中定义了例如

use App\User;
use Illuminate\Database\Eloquent\Model;

class Message extends Model
{
    //
    protected $fillable= ['sender_id',
    'receiver_id','message',
];
public function user()
{
    return $this->belongsTo(User::class);
}
}

我在用户模型中定义了一个现实,例如

public function Message()
      {
        return $this->hasMany(Message::class,'receiver_id');
      }

我创建了消息迁移,例如

   public function up()
    {
        Schema::create('messages', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->integer('sender_id');
            $table->integer('receiver_id');
            $table->string('message');
            $table->timestamps();
        });
    }

我想做的是用户可以在我定义的消息控制器中向另一个用户发送消息,例如

   public function store(Request $request)
    {
        //
        //dd($request->all());
        $message=new Message();
        $message ->fill($request->all());
        $mesaage->sender_id=Auth::id();
        $message->save();
        return redirect('user');

    }

其中 request->all() 正在获取表单中填写的所有信息,我的表单中的代码如下

    <form method="POST" action="{{route('Message.store')}}">
                @csrf   
                        <i class="icon-material-outline-account-circle">{{auth::user()->name}}</i>

                    <textarea name="textarea" cols="10" placeholder="Message" class="with-border"></textarea>
                    <input type="hidden" name="receiver_id" id="receiver_id" value="{{$user->id}}">
                <!-- Button -->
                <button class="button margin-top-35 full-width button-sliding-icon ripple-effect" type="submit">Make an Offer <i class="icon-material-outline-arrow-right-alt"></i></button>
            </form>
            </div>

我在这行收到一个错误,它说 $mesaage->sender_id=Auth::id(); 从空值创建默认对象

我的用户登录的地方..

标签: laravellaravel-5.8

解决方案


我的问题是您的 $message 对象为空:

也许你应该尝试另一种方法:

    public function store(Request $request)
    {
        Message::create($request->all() + ['sender_id' => auth()->id()]);

        return redirect('user');
    }

推荐阅读