本文整理汇总了PHP中app\models\Product::getSearchedItems方法的典型用法代码示例。如果您正苦于以下问题:PHP Product::getSearchedItems方法的具体用法?PHP Product::getSearchedItems怎么用?PHP Product::getSearchedItems使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类app\models\Product
的用法示例。
在下文中一共展示了Product::getSearchedItems方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: test_getSearchedItems
public function test_getSearchedItems()
{
/** Test 1 : tests method with all good inputs .. to be mocked later #TODO **/
// Create 2 products as a setup
$faker = Faker\Factory::create();
for($i=0; $i< 2; $i++)
{
$input = array(
'user_id' => 1,
'university_id' => 20,
'title' => $faker->sentence,
'description' => $faker->paragraph(4),
'primary_image_path' => 'main_image_'.rand(1,4).'.jpeg',
'delivery' => 1,
'pickup' => 1,
'free' => 1,
'price' => 0
);
print_r($input);
$product = Product::create($input);
ProductKeyword::create([
'product_id' => $product->id,
'keyword_id' => 10
]);
ProductKeyword::create([
'product_id' => $product->id,
'keyword_id' => 20
]);
ProductCategory::create([
'product_id' => $product->id,
'category_id' => 25
]);
}
$whereIn['keyword_id'] = array(10, 20);
$where['category_id'] = 25;
$where['university_id'] = 20;
$where['delivery'] = 1;
$where['pickup'] = 1;
$where['free'] = 1;
$where['price'] = 0;
$sort['products.updated_at'] = 'desc';
$results = Product::getSearchedItems($where, $whereIn, $sort);
}
示例2: searchItemsAlgoOne
//.........这里部分代码省略.........
**/
public function searchItemsAlgoOne(Request $request)
{
/** Algorithm
* First pass the input search string through a profanity filter - TODO
* Pass above through regular words filter to remove prepositions - TODO
* Now that we have a much smaller stripped search string, we keep that array of keywords
* With other input params that are indexable like delivery, free, status, etc we get an array of products from db
* Now for the keywords, we use php to filter the returned record
* Testing Strategy
* loadTesting
**/
$where = array();
$whereIn = array();
$sort = array();
$ultimate_array = array();
try {
// Process keywords
if ($request->has('searchTerm')) {
//$sanitized_keywords = ProfanityFilter::sanitize($request->input('searchTerms'));
//$removed_regular_list = RegularWordsRemoval::remove($sanitized_keywords);
$removed_regular_list = explode(" ", $request->input('searchTerm'));
$ks = new KeywordsService();
$keyword_id = array();
$keyword_id = $ks->getKeywordsByName($removed_regular_list);
$whereIn['keyword_id'] = $keyword_id;
}
// Process categories
if ($request->has('category_id') && $request->input('category_id') != -1) {
$where['category_id'] = $request->input('category_id');
}
// Process university_id
$us = new UniversitiesService();
if ($request->has('university_name')) {
$university_id = $us->getUniversityIdByName($request->input('university_name'));
$where['university_id'] = $university_id;
}
// Process delivery_only
if ($request->has('delivery')) {
$where['delivery'] = 1;
}
// Process pickup_only
if ($request->has('pickup')) {
$where['pickup'] = 1;
}
// Process free_only
if ($request->has('freeonly')) {
$where['free'] = 1;
}
// Process usage
if ($request->input('usage') == 'new') {
$where['new'] = 1;
} else {
if ($request->input('usage') == 'used') {
$where['used'] = 1;
}
}
// Process sort fields
$sort_date = 0;
$sort_price_asc = 0;
$sort_price_desc = 0;
$sortfield_value = "";
$sortfield_value = "";
if ($request->has('sortfield')) {
$sortfield_value = $request->input('sortfield');
}
switch ($sortfield_value) {
case "date_desc":
$field = "products.updated_at";
$order = "desc";
$sort_date = 1;
break;
case "price_asc":
$field = "products.price";
$order = "asc";
$sort_price_asc = 1;
break;
case "price_desc":
$field = "products.price";
$order = "desc";
$sort_price_desc = 1;
break;
default:
$field = "products.updated_at";
$order = "desc";
$sort_date = 1;
}
$sort = array();
$sort[$field] = $order;
// Now call the DB function...
$results = Product::getSearchedItems($where, $whereIn, $sort);
$output['status'] = true;
$output['data'] = $results;
return $output;
} catch (Exception $e) {
$output['status'] = true;
$output['data'] = $e->getMessage();
return $output;
}
}