Мое представление о вызове функции - index.ctp. Контроллером является AdvertisementsController, а функцией - change_status. Теперь дело в том, что это представление не относится к этому контроллеру, поэтому к модели.Теперь я хочу получить название модели, используемое представлением в функции.Как я могу?
$ modelname = Inflector :: classify ($ this-> params ['controller']);Я использовал это, но это не так, потому что несколько представлений, принадлежащих другим моделям, вызывают функцию.
Я также определил ajax-данные в ctp, но не получаю их.
function changeStatus(){
$('.change-status').on('change',function(){
$("#loading_image").show();
var status = $(this).val();
var userId = $(this).attr('emp-id');
var modelname = 'ClAdvertisement';
$.ajax({
type: "POST",
url: adminUrl+'advertisements/change_status',
data: {'data[User]':{'status':status,'id':userId,'modelname':modelname}},
dataType: 'json',
error:function(a,b,c) {
$("#loading_image").hide();
bootbox.alert({
message: 'Unable to process request. - ' + a,
className: "bootbox-m"
});
},
success: function (data) {
$("#loading_image").hide();
if(data.success == true){
showMsg('success',data.msg);
}else{
showMsg('error',data.msg);
}
}
});
});
}
В контроллере я использовал эти $ this-> request-> data ['User'] ['modelname'];
Полная функция - публичная функция change_status () {
$this->_is_user_login ();
$this->layout = false;
// $modelname = Inflector::classify( $this->params['controller']);
if($this->request->is('ajax')) {
if($this->request->is('post')) {
prd($this->request->data['modelname']);
$this->request->data[$modelname]['id'] = base64_decode($this->request->data[$modelname]['id'] );
$status = $this->request->data[$modelname]['status'];
$response = array();
if($this->$modelname->save($this->request->data)) {
$response = array('success' => true,'message' => 'Status has been updated successfully.');
}else{
$response = array('success' => false,'message' => 'Opps error please try again.');
}
}else{
$response = array('success' => false,'message' => 'Invalid request.');
}
echo json_encode($response);
die;
}else{
$this->redirect('/');
}
}
Просто название модели.