我是laravel的新手。我已经阅读了laravel的测试文档,但是我似乎并不理解它。有人能指导我测试这个助手函数的步骤吗?
下面是函数。
function getUnreadInboxMessagesForAUserById($id)
{
$past_period_months = Carbon::now()->subMonths(6);
$message = App\Message::select("*")
->whereIn("conversation_id", App\Conversation::select("id")
->where([
["user_one", "=", $id],
["delete_user_one", "=", 0]
])
->where(function($query) {
$query->where("created_at", ">", $user_one_convo_deleted_at)->orWhereNull("user_one_convo_deleted_at");
})
->where(function($query) {
$query->where("created_at", ">", $user_one_msgs_deleted_at)->orWhereNull("user_one_msgs_deleted_at");
})
->orWhere(function($query) {
$query->where([
["user_two", "=", $id],
["delete_user_two", "=", 0]
])
->where(function($query) {
$query->where("created_at", ">", $user_two_convo_deleted_at)->orWhereNull("user_two_convo_deleted_at");
})
->where(function($query) {
$query->where("created_at", ">", $user_two_msgs_deleted_at)->orWhereNull("user_two_msgs_deleted_at");
});
})
)
->where([
["is_seen", "=", 0],
["user_id", "<>", $id]
])
->whereNotIn("user_id", App\DeactivateAccount::select("user_id"))
->where(function($query) {
$query->whereNotIn("user_id", App\User::select("id")
->where([
["flag", "=", 0],
["id", "=", $user_id]
])
->orWhereIn("user_id", App\User::select("id")
->where("id", "=", $user_id)
->whereIn("membership", ["admin","premium","free-premium","diamond"]))
);
})
->where(function($query) {
$query->where("hard_delete", "=", 0)->orWhereNull("hard_delete");
})
->where(function($query) {
$query->where("deleted_from_receiver", "=", 0)->orWhereNull("deleted_from_receiver");
})
->where(function($query) {
$query->where("isflaged", "!=", 1)->orWhereNull("isflaged");
})
->where("created_at", ">=", $past_period_months)
->orderBy("created_at", "desc")
->get()
->count();
return $messages[0];
}
如果你能详细地列出这些步骤,那将非常有帮助。
2条答案
按热度按时间0vvn1miw1#
用拉瑞维尔的思想家:
然后运行函数类教程
bihw5rsg2#
在应用程序文件夹内为助手函数创建单独的文件夹,假设助手文件名为
common.php
,路径为app/Helpers/Common.php
您可以创建一个服务提供程序并在该提供程序中加载文件,然后将其导入config/app.php中的提供程序,或者您可以尝试使用composer自动加载
如果要使用服务提供商
创建帮助器服务提供程序类:
app/Providers/HelperServiceProvider.php
并使用下面提到的代码如果要使用composer自动加载,请打开composer.json
更新composer.json后,运行
composer dump-autoload
。我个人建议使用服务提供商。
正确导入所有内容后,您可以在项目中的任何位置使用
getUnreadInboxMessagesForAUserById($id)
函数。