Procurando por Registros
Os exemplos a seguir mostram como procurar registros usando uma classe de beans. Os exemplos fornecidos assumem que um registro de conta está disponível com nomes $accountBean. Isso pode ter sido recuperado usando a chamada getBean mencionada na seção BeanFactory, por exemplo.
$accountBean = BeanFactory::getBean('Accounts');
get_list
O método get_list permite obter uma lista de beans correspondentes e permite paginar os resultados.
get_list(
$order_by = "",
$where = "",
$row_offset = 0,
$limit=-1,
$max=-1,
$show_deleted = 0)
$order_by
-
Controla a ordem da lista retornada.
$order_by
é especificado como uma sequência que será usada na cláusula SQL ORDER BY, por exemplo para classificar por nome, você pode simplesmente passarname
, para ordenar por date_entered descrescente usedate_entered DESC
. Você também pode classificar por vários campos. Por exemplo, ordenando por date_modified e id descrescentedate_modified, id DESC
. $where
-
Permite filtrar os resultados usando uma cláusula SQL WHERE.
$where
deve ser uma sequência contendo as condições SQL. Por exemplo, no módulo de contatos, procurando contatos com nomes específicos, podemos usarcontacts.first_name='Jim'
. Observe que, se especificarmos a tabela, a consulta poderá acabar se unindo a outras tabelas, portanto, queremos garantir que não haja ambiguidade em qual campo segmentar. $row_offset
-
A linha para começar. Pode ser usado para paginar os resultados.
$limit
-
O número máximo de registros a serem retornados pela consulta. -1 significa sem limite.
$max
-
O número máximo de entradas a serem retornadas por página. -1 significa o máximo padrão (geralmente 20).
$show_deleted
-
Se deseja incluir resultados excluídos.
Resultados
get_list retornará uma matriz. Isso conterá as informações de paginação e também a lista de beans. Essa matriz conterá as seguintes chaves:
list
-
Uma matriz dos beans retornados pela consulta de lista
row_count
-
O número total de linhas no resultado
next_offset
-
O deslocamento a ser usado para a próxima página ou -1 se não houver mais páginas.
previous_offset
-
O deslocamento a ser usado para a página anterior ou -1 se esta for a primeira página.
current_offset
-
O deslocamento usado para os resultados atuais.
Exemplo
Vamos ver um exemplo concreto. Retornaremos a terceira página de todas as contas com o setor Media
usando 10 como tamanho da página e ordenado por nome.
$beanList = $accountBean->get_list(
//Order by the accounts name
'name',
//Only accounts with industry 'Media'
"accounts.industry = 'Media'",
//Start with the 30th record (third page)
30,
//No limit - will default to max page size
-1,
//10 items per page
);
Isso retornará:
Array
(
//Snipped for brevity - the list of Account SugarBeans
[list] => Array()
//The total number of results
[row_count] => 36
//This is the last page so the next offset is -1
[next_offset] => -1
//Previous page offset
[previous_offset] => 20
//The offset used for these results
[current_offset] => 30
)
get_full_list
get_list
é útil quando você precisa de resultados paginados. No entanto, se você estiver apenas interessado em obter uma lista de todos os registros correspondentes, poderá usar get_full_list
. O get_full_list
A assinatura do método fica assim:
get_full_list(
$order_by = "",
$where = "",
$check_dates=false,
$show_deleted = 0
Esses argumentos são idênticos ao seu uso em get_list
a única diferença é o argumento $check_dates
. Isso é usado para indicar se os campos de data devem ser convertidos em seus valores de exibição (ou seja, convertidos no formato de data do usuário).
Resultados
A chamada get_full_list simplesmente retorna uma matriz dos registros correspondentes
Exemplo
Vamos refazer nosso exemplo de get_list
para obter a lista completa de contas correspondentes:
$beanList = $accountBean->get_full_list(
//Order by the accounts name
'name',
//Only accounts with industry 'Media'
"accounts.industry = 'Media'"
);
retrieve_by_string_fields
Às vezes, você deseja recuperar apenas uma linha, mas pode não ter o ID do registro. retrieve_by_string_fields
permite recuperar um único registro com base nos campos de sequência correspondentes.
retrieve_by_string_fields(
$fields_array,
$encode=true,
$deleted=true)
$fields_array
-
Uma matriz de nomes de campos para o valor desejado.
$encode
-
Se os resultados devem ou não ser codificados em HTML.
$deleted
-
Se deve ou não adicionar o filtro excluído.
Observe aqui que, confusamente, o sinalizador excluído funciona de maneira diferente dos outros métodos que examinamos. Ele indica se devemos ou não filtrar os resultados excluídos. Portanto, se true for passado, os resultados excluídos não serão incluídos.
Resultados
retrieve_by_string_fields retorna um único bean como resultado ou nulo se não houver nenhum feijão correspondente.
Exemplo
Por exemplo, para recuperar a conta com o nome Tortoise Corp e account_type Customer, podemos usar o seguinte:
$beanList = $accountBean->retrieve_by_string_fields(
array(
'name' => 'Tortoise Corp',
'account_type' => 'Customer'
)
);