Skip to content

Commit 006499a

Browse files
authored
Merge pull request #16 from coderflexx/user-messages-relationship
Message User Relationship
2 parents 779999d + 238c3fe commit 006499a

File tree

4 files changed

+30
-1
lines changed

4 files changed

+30
-1
lines changed

config/laravel_ticket.php

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
* @see https://laravel.com/docs/9.x/eloquent-relationships#one-to-many
4040
*/
4141
'columns' => [
42+
'user_foreing_id' => 'user_id',
4243
'ticket_foreing_id' => 'ticket_id',
4344
],
4445
],

database/migrations/create_messages_table.php.stub

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ return new class extends Migration
1515

1616
Schema::create($tableName['table'], function (Blueprint $table) use ($tableName) {
1717
$table->id();
18-
$table->foreignId('user_id');
18+
$table->foreignId($tableName['columns']['user_foreing_id']);
1919
$table->foreignId($tableName['columns']['ticket_foreing_id']);
2020
$table->text('message');
2121
$table->timestamps();

src/Models/Message.php

+15
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,21 @@ public function ticket(): BelongsTo
3838
);
3939
}
4040

41+
/**
42+
* Get Message Relationship
43+
*
44+
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
45+
*/
46+
public function user(): BelongsTo
47+
{
48+
$tableName = config('laravel_ticket.table_names.messages', 'message');
49+
50+
return $this->belongsTo(
51+
config('auth.providers.users.model'),
52+
$tableName['columns']['user_foreing_id']
53+
);
54+
}
55+
4156
/**
4257
* Get the table associated with the model.
4358
*

tests/Feature/MessageTest.php

+13
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
use Coderflex\LaravelTicket\Models\Message;
44
use Coderflex\LaravelTicket\Models\Ticket;
5+
use Coderflex\LaravelTicket\Tests\Models\User;
56

67
it('can attach message to a ticket', function () {
78
$message = Message::factory()->create();
@@ -13,3 +14,15 @@
1314

1415
$this->assertEquals($message->ticket->title, 'Can you create a message?');
1516
});
17+
18+
it('message can be associated to a user', function () {
19+
$user = User::factory()->create([
20+
'name' => 'Oussama',
21+
]);
22+
23+
$message = Message::factory()->create();
24+
25+
$message->user()->associate($user);
26+
27+
$this->assertEquals($message->user->name, 'Oussama');
28+
});

0 commit comments

Comments
 (0)