{#
/**
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * For full copyright and license information, please see the LICENSE.txt
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @since         2.0.0
 * @license       http://www.opensource.org/licenses/mit-license.php MIT License
 */
#}
{% set belongsTo = Bake.aliasExtractor(modelObj, 'BelongsTo') %}
{% set belongsToMany = Bake.aliasExtractor(modelObj, 'belongsToMany') %}
{% set compact = ["'#{singularName}'"] %}
    /**
     * Edit method
     *
     * @param string|null $id {{ singularHumanName }} id.
     * @return \Cake\Http\Response|null Redirects on successful edit, renders view otherwise.
     * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found.
     */
    public function edit($id = null)
    {
        ${{ singularName }} = $this->{{ currentModelName }}->get($id, [
            'contain' => [{{ Bake.stringifyList(belongsToMany, {'indent': false})|raw }}],
        ]);
        if ($this->request->is(['patch', 'post', 'put'])) {
            ${{ singularName }} = $this->{{ currentModelName }}->patchEntity(${{ singularName }}, $this->request->getData());
            if ($this->{{ currentModelName }}->save(${{ singularName }})) {
                $this->Flash->success(__('The {{ singularHumanName|lower }} has been saved.'));

                return $this->redirect(['action' => 'index']);
            }
            $this->Flash->error(__('The {{ singularHumanName|lower }} could not be saved. Please, try again.'));
        }
{% for assoc in belongsTo|merge(belongsToMany) %}
    {%- set otherName = Bake.getAssociatedTableAlias(modelObj, assoc) %}
    {%- set otherPlural = otherName|variable %}
        ${{ otherPlural }} = $this->{{ currentModelName }}->{{ otherName }}->find('list', ['limit' => 200]);
        {{- "\n" }}
    {%- set compact = compact|merge(["'#{otherPlural}'"]) %}
{% endfor %}
        $this->set(compact({{ compact|join(', ')|raw }}));
    }
