Skip to main content

Touch Many-to-Many Parent and sync methods in laravel

 Touch method

1) Most of the time user update data in the child table but also wants to update the user (parent) table updated_at field.

For that, you don't need to update it manually by querying it.

Use the touch method on the model object inside controller. This method will only update the updated_at field to the current date/time.

$user->touch();

2) You could also update field automatically, lets say where there is new comment on post and you also want to update post table updated_at feild at the same time than what you need to do

Inside Comment Model

define belongtomany relationship to post model class and also specify a protected variable

protected $touches = ['post'];
//post is realtional method

Sync() Method

This method is use to add multiple id's of data into pivot table with many to many relationship.

This method remove existing id's and add new id's.

If you want existing id's remian in the pivot table than you will use this code.

$book->authors()->syncWithoutDetaching([1, 2, 3]);

Useful links

https://blog.quickadminpanel.com/laravel-belongstomany-add-extra-fields-to-pivot-table/

https://laravel.com/docs/9.x/eloquent-relationships#many-to-many-polymorphic-relations

https://www.amitmerchant.com/attach-detach-sync-laravel/



Comments

Popular posts from this blog

Install MariaDB Latest Version 11.4 in Red Hat Version 9

 This this post i will show you step by step the installation process of mariaDB in red hat version 9. Step1 Run the command to pull the latest updated packages on applications installed in your system. -dnf update If you get Kernal update than reboot the system -reboot Step2 Go to official mariaDB site Make mariadb repository in /etc/yum.repos.d Place the configuration in this file # MariaDB 11.4 RedHatEnterpriseLinux repository list - created 2024-09-24 11:12 UTC # https://mariadb.org/download/ [mariadb] name = MariaDB # rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details. # baseurl = https://rpm.mariadb.org/11.4/rhel/$releasever/$basearch baseurl = https://mirrors.aliyun.com/mariadb/yum/11.4/rhel/$releasever/$basearch # gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB gpgkey = https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck = 1 Now install the mariaDB with its dependencies package...

Linux Commands

  Linux Commands 1.  OS-Release -cat /etc/os-release -cat /etc/redhat-release show os //kernal information -uname  show kernal middleware It is intermediator between hardware and software. -uname  -r what is process architect. -uname -p To show all information -uname -a 2.  Date-CAL -date -cal 3.  Booting in Linux (Run-Levels) Shutdown/Close pc -init 0  Single user mode -init 1 Multiple user mode -init 2 Multiple user mode with network plus full support Not use -init 4 Graphical mode init 5 Reboot the system -init 6 4.  Target command in Linux (systemctl) With the help of target we can manage system specific as well as user specific task. Target command is system Control (systemctl). Basically it is utility, which build to replace 'init' command. What systemctl can do ?  We can find its all commands with the help of single command. write systemctl enter twice TAB button. //it will list all its commands. Show current system mode - systemctl...