This question is a follow up of a previous question see:
(Entry
Form – Multiple Entries & Entry Type & Parent)
私は既存のマルチレベル構造に複数の子供を追加しようとしています:
Level 1
--Level 2 (The parent where I am adding the children)
----Child 1
----Child 2
..etc
私のコントローラ:
public function actionSaveAnimals(){
$this->requirePostRequest();
if($rodentsData = craft()->request->getParam('rodent')){
$rodentErrors = [];
foreach ($rodentsData as $rodentData){
if (array_key_exists('entryId', $rodentData) && $rodentId = $rodentData['entryId']) {
if (!$rodent = craft()->elements->getElementById($rodentId)) {
throw new Exception('Could not find rodent with the given Id');
}
} else {
$rodent = new EntryModel();
$rodent->typeId = 6;//change your entryType Id here
$rodent->sectionId = craft()->request->getParam('sectionId');
$rodent->parentId = craft()->request->getParam('parentId');
$rodent->authorId = craft()->request->getParam('authorId');
}
$rodent->getContent()->setAttributes($rodentData['fields']);
if (!craft()->entries->saveEntry($rodent)) {
$rodentErrors[] = $rodent->getErrors();
}else{
$rodentErrors = [];
}
}
//include errors of each item
craft()->urlManager->setRouteVariables(array(
'rodentErrors' => $rodentErrors
));
}
}
そして私の形式:
<form method="post" accept-charset="UTF-8">
{{ getCsrfInput() }}
{# your plugin name and function name #}
<input type="hidden" name="action" value="experiment/SaveAnimals">
{# the id of your section for me its 4 you need to change this value to your section Id #}
<input type="hidden" name="sectionId" value="4">
{# enable the entry #}
<input type="hidden" name="enabled" value="1">
{# id of your entry leave it blank to insert a new entry, insert a id to change an existing entry#}
<input type="hidden" name="entryId" value="">
<input type="hidden" name="parentId" value="{{ entry.id }}">
<input type="hidden" name="authorId" value="{{ currentUser.id }}">
<div class="fields">
<div class="field mt3">
{#<input class="pa3 input-reset ba bw0 br2 w-100" type="number" id="Cage__Amount" placeholder="5" max="10" required>#}
<input type="text" name="rodent[0][fields][title]" value="Add Identifier">
<input type="text" name="rodent[1][fields][title]" value="Add Identifier">
</div>
</div>
<div class="field submit mv4">
<button class="bg-dark-blue white ph3 pv2 input-reset pointer ba bw0 f5 dib lh-copy w-100" type="submit">Create experiment</button>
</div>
私は現在このエラーが発生しています:
非オブジェクトのプロパティを取得しようとする
EntriesService.phpから(468)
if ($entry->getSection()->type != SectionType::Structure)
どんな助けも大変ありがとう!
ベストアンサー
セクションIDが間違っていました – 正しく設定されていて、この機能は機能しています。