Skip to content

Instantly share code, notes, and snippets.

@adamwathan
Last active August 3, 2024 16:44
Show Gist options
  • Save adamwathan/723a3ad31e1586b66450 to your computer and use it in GitHub Desktop.
Save adamwathan/723a3ad31e1586b66450 to your computer and use it in GitHub Desktop.
Eloquent Relationship snippets for Sublime Text
<snippet>
<content><![CDATA[
public function ${1:relationship}()
{
return \$this->belongsToMany(${1/^(.+)$/(?1\u$1:)/g}::class, {$2:table});
}
]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<tabTrigger>belt</tabTrigger>
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<scope>source.php</scope>
</snippet>
<snippet>
<content><![CDATA[
public function ${1:relationship}()
{
return \$this->belongsTo(${1/^(.+)$/(?1\u$1:)/g}::class);
}
]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<tabTrigger>belo</tabTrigger>
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<scope>source.php</scope>
</snippet>
<snippet>
<content><![CDATA[
public function ${1:relationship}()
{
return \$this->hasMany(${1/^(.+)$/(?1\u$1:)/g}::class);
}
]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<tabTrigger>hasm</tabTrigger>
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<scope>source.php</scope>
</snippet>
<snippet>
<content><![CDATA[
public function ${1:relationship}()
{
return \$this->hasOne(${1/^(.+)$/(?1\u$1:)/g}::class);
}
]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<tabTrigger>haso</tabTrigger>
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<scope>source.php</scope>
</snippet>
@CristianLlanos
Copy link

Thanks! That's awesome! 👍 Perhaps belm instead of belt to follow a pattern.

@viralsolani
Copy link

Thanks ! Useful Snippets.

@steveneaston
Copy link

Good snippets, thanks. Just a note, the second tab variable on belongs-to-many should be: ${2:table} (not {$2:table}).

Also worth adding a third tab in so you can quickly delete the table parameter if you don't need it return \$this->belongsToMany(${1/^(.+)$/(?1\u$1:)/g}::class${2:, '${3:table}'});

screen capture on 2016-03-23 at 11-22-05

@mlantz
Copy link

mlantz commented Mar 23, 2016

Love it!

@AdenFraser
Copy link

Seems to be a bug with replacing the last 's' in hasMany. Strips the last 's' regardless of whether it is the last character or not.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment