Ich denke immer noch, gibt es eine Möglichkeit, wie kann ich einen benutzerdefinierten Pivot-Tabellennamen erstellen? Weil ich ein Dokumente und Benutzer Tabelle erstellt hat eine viele zu viele Beziehung mit document_user, die meine ist Pivot-Tabelle und diese Tabelle wurde für empfangene Dokument erstellt, die Benutzer erstellt. Und ich plane, eine andere Pivot-Tabelle für Dokument und Benutzer diese Tabelle wurde für gesendete Dokumente erstellt, so dass ich Geschichte haben kann. Siehe meinen Code unten.Kann ich einen benutzerdefinierten Pivot-Tabellennamen mit einem anderen M: M-Objekt erstellen?
create_document_user_table
public function up()
{
Schema::create('document_user',function (Blueprint $table)
{
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->integer('document_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->foreign('document_id')->references('id')->on('documents')->onDelete('cascade');
$table->unsignedInteger('sender_id')->nullable();
$table->foreign('sender_id')->references('id')->on('users')->onDelete('cascade');
$table->dateTime('dateReceived')->default(DB::raw('CURRENT_TIMESTAMP'));
$table->timestamp('dateModified')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
});
}
documents_table
public function up()
{
Schema::create('documents', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('content');
$table->integer('category_id')->unsigned();
$table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
$table->timestamps();
});
}
users_table
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('first_name');
$table->string('last_name');
$table->string('middle_name');
$table->string('email');
$table->string('username');
$table->string('address');
$table->string('password');
$table->string('remember_token');
$table->integer('role_permission_id')->unsigned();
$table->foreign('role_permission_id')->references('id')->on('roles_permissions_dt')->onDelete('cascade');
$table->timestamps();
});
}
Dies funktioniert gut, Datensätze in meine Pivot-Tabelle einzufügen. Was ich plane zu erreichen, ist jedes Mal, wenn ich einen Datensatz für Dokumente eingefügt dies wird auch in meinem benutzerdefinierten Pivot-Tabelle nicht nur in meinem document_user Pivot-Tabelle eingefügt. Jede Hilfe würde geschätzt werden! Danke für deine Infos oder Tipps.
UPDATE
@Mina Dank für die Tipps, die Ihnen gegeben, aber eigentlich ist mein Einsatz oder für meine Pivot-Tabelle speichern. Wie kann ich das in meine Revisions-Tabelle einfügen?
Document
public function postDocuments(Request $request)
{
$this->validate($request,
[
'title' => 'required|regex:/(^[A-Za-z0-9 ]+$)+/|max:255',
'content' => 'required',
'category_id' => 'required',
'recipient_id' => 'required',
]);
$document = new Document();
//Request in the form
$document->title = $request->title;
$document->content = $request->content;
$document->category_id = $request->category_id;
$document->save();
$user = Auth::user();
foreach($request->recipient_id as $recipientId)
{
$document->recipients()->sync([ $recipientId => ['sender_id' => $user->id]],false);
}
return redirect()->back();
}
warum eine andere Pivot-Tabelle, es ist eine Beziehung zu dem Dokument direkt. –
@MinaAbadir Weil, was ich getan habe, brauche ich eine Geschichte von erstellten und empfangenen Dokumenten für jeden Benutzer. Deshalb habe ich eine M: M-Beziehung erstellt. – Francisunoxx
Kann ein Dokument von vielen Benutzern erstellt werden? –