я получаю эту ошибку Любая идея, как я могу удалить этот. Создание объекта по умолчанию из пустого значения laravel 5.8 - PullRequest
0 голосов
/ 03 мая 2020

я пытаюсь сделать то, что пользователь может отправить сообщение другому сообщению, пока что я сделал ... я создал модель с именем 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 (); Создание объекта по умолчанию из пустого значения

, где мой пользователь вошел в систему ..

1 Ответ

0 голосов
/ 04 мая 2020

Мне кажется, проблема в том, что ваш объект $ message имеет значение null:

Возможно, вам следует попробовать другой подход:

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

        return redirect('user');
    }
...