This forum has moved to a new location and is in read-only mode. Please visit talk.octobercms.com to access the new location.
I try to create a onDelete action. I have only a problem with the query My javascript and button
$("#remove_book").click(function(){ $(this).data('request-data', { book_checked: $('.list-checkbox input[type=\'checkbox\']').listWidget('getChecked') }) }); button class="btn btn-danger oc-icon-trash-o" disabled="disabled" id="remove_book" data-request="onDelete" data-request-confirm="Sure ?" data-trigger-action="enable" data-trigger=".control-list input[type=checkbox]" data-trigger-condition="checked" data-request-success="$el.prop('disabled', false)" data-stripe-load-indicator> Delete
My onDelete function just have to delete the book what was selected. But I get the follow error: "Call to a member function delete() on a non-object" on line 43 of /www/testdomain/http/plugins/testplugin/book/controllers/Books.php
public function index_onDelete() { $postId = post('book_checked'); Book::whereIn('id', $postId) ->delete(); $post = book::find($postId); $post->delete(); \Flash::success('Book Successfully deleted.'); return $this->listRefresh(); }
What means Call to a member function delete() on a non-object. The delete function is a default October function right?
Last updated
I don't see no why it don't work. I have look into a other plugin how they have create the ondelete function and I end up with this:
public function onDelete() { if (($checkedIds = post('checked')) && is_array($checkedIds) && count($checkedIds)) { foreach ($checkedIds as $postId) { if ((!$post = book::find($postId)) ) continue; $post->delete(); } Flash::success('Book deleted'); }
button:
<button
class="btn btn-default oc-icon-trash-o"
disabled="disabled"
onclick="$(this).data('request-data', {
checked: $('.control-list').listWidget('getChecked')
})"
data-request="onDelete"
data-request-confirm="Sure ?"
data-trigger-action="enable"
data-trigger=".control-list input[type=checkbox]"
data-trigger-condition="checked"
data-request-success="$el.prop('disabled', false)"
data-stripe-load-indicator>
Delete
If I understand it right with post('checked') you add the selected ids to the var.
Last updated
1-2 of 2