2020-03-09

Craft CMS を使った会員制サイトで自身の情報を編集できるようにする #craftcms

会員制サイトなどをつくって、マイページで自分の情報を編集できるようにすることはよくある。

名前やメールアドレスとかの基本のフィールドはドキュメントにある感じでアップデートができる。

<div>
  <label for="first-name">First Name</label>
  <input type="text" id="first-name" name="firstName" value="{{ currentUser.firstName }}">
</div>
User Profile Form | Craft 3 Documentation
https://docs.craftcms.com/v3/d...

カスタムフィールドとかは

name="fields[<$handle$>]"

のように記載することでアップデートができる。

{# Custom field example. Delete if you don't have a `bio` field. #}
{% set error = formUser.getFirstError('bio')  %}
{% set class = error ? 'has-error' : '' %}
<div class="group {{ class }}">
<label for="bio">Bio <span class="error-symbol">&#9888;</span></label>
<p class="error-message">{{ error }}</p>
<textarea id="bio" name="fields[bio]">{{ formUser.bio }}</textarea>
</div>
User Profile Form | Craft 3 Documentation
https://docs.craftcms.com/v3/d...

@BUN がまとめてくれたエントリーが非常に参考になるので、会員制サイトをつくってマイページなどを用意するときはまずこれらを読んで(コピペして)から作っていくと問題なさそう。

Craft 2 と 3 で変わっているところはあるので、その辺は適宜調整していく。