Skip to content

Instantly share code, notes, and snippets.

@adamwathan
Last active October 19, 2020 16:59
Show Gist options
  • Star 60 You must be signed in to star a gist
  • Fork 12 You must be signed in to fork a gist
  • 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>
@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