Je suis en train de créer un blog et j'ai deux modèles, Post et Tag. Je veux connecter les deux avec un tableau croisé dynamique. C'est une relation de plusieurs à plusieurs et je n'arrive pas à comprendre comment relier les posts et les tags. quand j'essaye de le faire, il ne renvoie rien sur ma base de données. Les messages ont un titre et le contenu tandis que les tags ont seulement le nom. J'ai lu que je dois utiliser la méthode de synchronisation ou attach-detach mais je ne sais pas où faire cela. Est-ce sur les routes des messages ou des itinéraires de tags? J'ai inclus les routes des postes et des balises sur routes.php les grouper en utilisant:2 modèles avec table pivotante, plusieurs à plusieurs relation
Route::resource('/tags', 'TagController');
Route::resource('/posts', 'PostController');
Voici ce que j'ai jusqu'à présent:
Mon modèle Post:
class Post extends Model{
protected $fillable = [
'title', 'content'
];
protected $hidden = [
'view_count'
];
public function tags()
{
return $this->belongsToMany('App\Tag', 'post_tag');
}}
Voici mon modèle Tag:
class Tag extends Model{
protected $fillable = [
'name'
];
public function posts(){
return $this->belongsToMany('App\Post', 'post_tag');
}}
Voici mon tableau croisé dynamique de post_tag:
class CreatePostTagTable extends Migration{
public function up()
{
Schema::create('post_tag', function (Blueprint $table) {
$table->increments('id');
$table->integer('post_id')->unsigned()->nullable()->index();
$table->foreign('post_id')->references('id')->on('posts');
$table->integer('tag_id')->unsigned()->nullable()->index();
$table->foreign('tag_id')->references('id')->on('tags');
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('post_tag');
}}
Le code semble bon. Qu'est-ce que vous essayez qui ne fonctionne pas? –
Eh bien, quand je veux créer un post, je veux que le seul utilisateur, qui est l'administrateur, associe les tags qu'il veut à son poste. Quelle route devrais-je créer avec la méthode sync pour connecter les messages avec les tags, car mes messages et mes tags sont stockés à la création, mais rien n'est stocké dans la table post_tag – livia
@joel hinz Je me rends compte maintenant que mon crud semble bon, mais j'ai une question sans rapport avec vous. Puis-je modifier la question du trou pour demander comment implémenter la case à cocher tag dans la vue create de la publication? – livia