laravel hasManyThrough() relation create

Viewed 192

Assume the following relations:

Order:

public function messages(){

    return $this->hasManyThrough('App\Models\Message', 'App\Models\Conversation', 'order_id', 'conversation_id', 'id', 'id');
}

Conversation:

public function messages()
{
    return $this->hasMany('App\Models\Message')->latest();
}

I tried to create a new meesage from an order instance like:

    //create message & assign message to conversation
    $message = new Message([
        'user_id'   => Auth::id(),
        'text'      => $request->messageText,
    ]);

    $order->messages()->save($message);

Result:

Call to undefined method Illuminate\Database\Eloquent\Relations\HasManyThrough::save()

Is there an easy way to create new instances of message directly through an order instance?

Update

I tried this too:

$order->messages->user_id = Auth::id();
$order->messages->text = $request->messageText;
$order->messages->is_admin = true;

$order->push();
1 Answers
$order = new Order; 
$message = new Message([
    'user_id'   => Auth::id(),
    'text'      => $request->messageText,
]);

$order->messages()->add($message);

check with this thing will it work

Related