2013-03-16 3 views
0

Я только что создал эту функцию в модели, чтобы увидеть, кто им следует в моей социальной сети ... как я могу ее назвать в представлении?Как вызвать функцию, которую я создал в моей модели, на вид

function isfollowing($following){ 

     $user_id = $this->session->userdata('uid'); 

     $this->db->select('*');  
     $this->db->from('membership'); 
     $this->db->join('following', "membership.id = following.tofollow_id"); 
     $this->db->where("tofollow_id","$following"); 
     $this->db->where("user_id", "$user_id"); 


     $q = $this->db->get();  



    if($q->num_rows() > 0) { 
     return "yes"; 
    } else { 
     return "no"; 
    } 


} 

Теперь на мой взгляд, как я называю это в том, что я уже сделал функцию, чтобы получить вошедшего на идентификатор пользователя и что равно $ r-> ид

Как я называю это здесь?? что происходит после «==» в этом утверждении if?

ВЗГЛЯД

<?php if ($r->id ==): ?> 

ответ

0

Вы делаете следующее:

(1) Загрузите модель в контроллер, который создает вашу страницу или автоматическую загрузку его

(2) По вашему мнению, типа что-то вроде:

$this->The_custom_model->isfollowing($theinputvariable) 

где The_custom_model является модель, где у ou определила функцию isfollowing().

$theinputvariable - соответствующее значение аргумента для вашей функции. Имейте в виду, что вы указали объект как аргумент своей функции, поэтому вам нужно подумать об этом.

2

Неправильная практика вызова функции модели из представления. Есть несколько альтернатив. Вы можете использовать любого, кого хотите.

Первый

При загрузке вид называют вашу модельную функцию и передать его в переменной , чем эта переменная будет передана для просмотра.

Контроллер

$following_status = $this->my_model->isfollowing($following); 

$data['following_status'] = $following_status; 

$this->load->view('my_view',$data); 

Посмотреть

<p>$following_status</p> 

Secound

Если вы хотите, чтобы быть независимым от модели вы можете создать хелпер, который можно использовать в любом месте в приложении. Вам нужно будет создать экземпляр CI до , чтобы он работал.

custom_helper.php

function isfollowing($following) 
{ 
    $CI = get_instance(); 

    $user_id = $CI->session->userdata('uid'); 

    $CI->db->select('*');  
    $CI->db->from('membership'); 
    $CI->db->join('following', "membership.id = following.tofollow_id"); 
    $CI->db->where("tofollow_id","$following"); 
    $CI->db->where("user_id", "$user_id"); 

    $q = $CI->db->get();  

    if($q->num_rows() > 0) { 
     return "yes"; 
    } else { 
     return "no"; 
    } 
} 

Посмотреть

//load the custom helper before using it (you can autoload of in autoload.php) 
//or use common way $this->load->helper('custom'); 
<p>isfollowing($yourparameter)</p> 
0

это измененная версия того, что Рахил Написал, показывающий, если чек - вероятно, не стоит вашего вопроса, но, чтобы дать вам некоторые вещи подумайте о ...

// check to see if anything come back from the database? 
if (! $data['following_status'] = $this->my_model->isfollowing($following)) { 

// nothing came back, jump to another method to deal with it 
    $this->noFollowers() ; } 

// else we have a result, and its already set to data, so ready to go 
else { 

    // do more here, call your view, etc 
} 

базы данных могут опускаться, даже если веб-страница работает так его хорошо привыкнуть проверять результаты. чем больше проверок ошибок вы можете сделать в своем контроллере и моделях, тем чище ваши файлы просмотра будут.

0

Чтобы получить доступ к модели в ваш взгляд, вы сначала загрузить его в автозагрузку файл как этот

$autoload['model'] = array('model_name'); 

то в силу вы можете получить его, используя следующую строку кода

 $this->model_name->isfollowing($following) 

в isfollowing вы передадите ваш tofollow_id

Смежные вопросы