我在REST服务中解析JSON整数时遇到问题.解析String和double类型工作正常
工作:
JSONParser parser = new JSONParser();
Object obj = null;
try {
obj = parser.parse(input);
} catch (ParseException e) {
e.printStackTrace();
}
JSONObject jsonObject = (JSONObject) obj;
//---------------
String uName = (String) jsonObject.get("userName");
double iPrice = (Double) jsonObject.get("itemPrice");
Run Code Online (Sandbox Code Playgroud)
不工作:
int baskId = (Integer) jsonObject.get("basketId");
Run Code Online (Sandbox Code Playgroud)
我试图将basketId我的篮子类转换为String,然后它运行正常,所以代码没问题,链接正常,但是,当我把它转回int时,我得到500服务器错误.我用它来创建一个带有一些数字ID的新篮子,所以我使用@POST注释,有效载荷中的JSON如下:
{"basketId":50}
Run Code Online (Sandbox Code Playgroud)
我不明白......
编辑:我确实得到它... JSON simple接受更大类型的Java原语,所以整数和浮点数是禁止的
我正在尝试在Alpine Linux Docker环境上安装OCI8扩展。尽管有很多地方说它行不通,但有些地方说它确实行得通。我有一个3.4版本,由于公司原因,它现在仍然保持这种状态。
我已经在Docker conf中完成了此操作:
# Install Oracle Client and build OCI8 (Oracel Command Interface 8 - PHP extension)
USER root
ENV LD_LIBRARY_PATH=/usr/local/instantclient
ENV ORACLE_HOME=/usr/local/instantclient
RUN apk update && apk upgrade
RUN apk add musl-dev libaio autoconf && apk add --update make
## Unzip Instant Client v12
RUN pecl channel-update pecl.php.net
COPY instantclient_12_2.zip /var/www/html/instantclient_12_2.zip
RUN unzip -d /usr/local/ /var/www/html/instantclient_12_2.zip
RUN ln -s /usr/local/instantclient_12_2 /${ORACLE_HOME} && \
ln -s /${ORACLE_HOME}/libclntsh.so.* /${ORACLE_HOME}/libclntsh.so && \
ln -s /${ORACLE_HOME}/libocci.so.* /${ORACLE_HOME}/libocci.so && \ …Run Code Online (Sandbox Code Playgroud) 可以FakeItEasy与.NET的核心工作?我已经通过NuGet安装了它,但我不能在项目中引用它,using FakeItEasy因为它找不到它.我已经检查了NuGet依赖项,我将其视为FakeItEasy (3.3.2)
我的控制器位于与 Laravel native 不同的文件夹中App\Http\Controllers。我正在使用一个自定义Lib\MyApp文件夹,其中包含模块。每个模块都有自己的控制器、模型等。我添加了composer.json自动加载到app\lib.
我所做的是更改RouteServiceProvider命名空间:
protected $namespace = 'App\Lib\MyApp';
Run Code Online (Sandbox Code Playgroud)
我做了composer dump-autoload一切之后。
里面MyApp是一个Landing\Controller文件夹,里面有实际的控制器类。
尝试 1(理想):
我想这样称呼我的路线:
Route::get('/', 'Landing\Controller\LandingController@index');
Run Code Online (Sandbox Code Playgroud)
但这样我就得到了ReflectionException即使没有找到该类
尝试2:
Route::get('/', '\Landing\Controller\LandingController@index');
Run Code Online (Sandbox Code Playgroud)
当我刷新页面时,尾部斜杠会删除名称空间部分,并且类仍然被认为不存在。
尝试3:
Route::get('/', 'MyApp\Landing\Controller\LandingController@index');
Run Code Online (Sandbox Code Playgroud)
这只是复制MyApp文件夹,并且未按预期找到类。
尝试4(工作,但不想要这样)
Route::get('/', '\MyApp\Landing\Controller\LandingController@index');
Run Code Online (Sandbox Code Playgroud)
虽然我想去掉这个\MyApp\部分,但效果很好。
这样的事情可能吗?
我想在容器启动时运行 nginx 和 php-fpm,但我似乎无法这样做。这是我的Dockerfile:
FROM php:7-fpm-alpine
EXPOSE 9080 8000
EXPOSE 9088 80
WORKDIR /var/www
COPY . .
RUN apk add nginx composer php7-fpm && \
composer install --no-progress && \
mkdir -p /etc/nginx /etc/nginx/sites-available /etc/nginx/sites-enabled /run/nginx && \
ln -s /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/default.conf && \
cp nginx.conf /etc/nginx/conf.d/default.conf
CMD ["nginx", "-g", "daemon off;"]
Run Code Online (Sandbox Code Playgroud)
容器启动并运行,但是当我运行ps auxnginx时,在我运行nginx命令之前无处可见(配置正常,nginx -t返回正常,并且通过打开的容器运行它确实启动了服务)。
我试图链接,RUN php-fpm7 && nginx但没有任何作用。
也像使用入口点一样ENTRYPOINT ["nginx"]对我没有任何帮助。
如何确保这些进程在创建容器时正在运行?
我想知道在方法参数中使用类型提示是否有任何区别,例如:
function xyz (UserRepository $repo)
Run Code Online (Sandbox Code Playgroud)
并使用注释做同样的事情:
function xyz ($repo)
/* @var UserRepository $repo */
Run Code Online (Sandbox Code Playgroud) 我对A M使播种机:M的关系,我想1安装Widget到WorkspaceItem90%的情况下,其他5%2,最后5%3。
$widgets = Widget::all();
$workspaceItems = WorkspaceItem::all();
foreach ($workspaceItems as $workspaceItem) {
$numberBetween = $faker->numberBetween(0, 100);
if ($numberBetween > 95) {
$widgetsToSeed = $widgets->random(3);
} else if ($numberBetween > 90 && $numberBetween <= 95) {
$widgetsToSeed = $widgets->random(2);
} else {
$widgetsToSeed = $widgets->random();
}
foreach ($widgetsToSeed as $widget) {
$workspaceItem->widgets()->attach($widget->id, [...]);
}
}
Run Code Online (Sandbox Code Playgroud)
注意:我无法使用,sync()因为我有数据透视表的附加属性。
如果 I dd($widgetsToSeed),我确实会得到随机小部件。但是一旦它进入循环,dd($widget)我就没有得到模型,而只是true. 似乎是什么问题?
我在我的 Laravel/Vue 应用程序中使用 OneSignal。我已将其包含<head>在文档中:
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async=""></script>
<script>
var OneSignal = window.OneSignal || [];
OneSignal.push(function() {
OneSignal.init({
appId: "{{ env('ONESIGNAL_APP_ID') }}"
});
OneSignal.showNativePrompt();
});
</script>
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/OneSignalSDKWorker.js')
.then(function () {
console.log('Service worker registered');
})
.catch(function (error) {
console.log('Service worker registration failed:', error);
});
} else {
console.log('Service workers are not supported.');
}
</script>
Run Code Online (Sandbox Code Playgroud)
我也有自己的 service worker,所以我也遵循了这里的文档。
硬重置后发生的事情是安装了 Service Worker 并且一切正常,但是一旦我刷新页面,我就会得到:
OneSignalPageSDKES6.js?v=151102:1 Uncaught (in promise) InvalidStateError: 当前环境不支持此操作。在 Xe处的 Function.getServiceWorkerHref ( https://cdn.onesignal.com/sdks/OneSignalPageSDKES6.js?v=151102:1:41510 )。(https://cdn.onesignal.com/sdks/OneSignalPageSDKES6.js?v=151102:1:144028) at Generator.next …
我正在 Laravel 中制作自定义 Artisan 命令,我想传递选项。然而,我看到例如make:controller可以选择通过传入-r或 来创建资源控制器--resource。我的命令现在定义如下:
protected $signature = 'make {name} {--flag=?}';
Run Code Online (Sandbox Code Playgroud)
但是当我执行-hfor 命令帮助时,我只看到--flag一个选项。我想提供一个选项来编写-f并传入标志。
我试过这样
protected $signature = 'make {name} {-f=?} {--flag=?}';
Run Code Online (Sandbox Code Playgroud)
但它不起作用。