MySQLi预处理语句使用变量,$stmt但我找不到STMT代表什么或为什么使用它.对于其他变量(例如$query和$results)一直对我有意义,我只是想知道,为什么$stmt,背后的历史是什么?
我正在使用spatie权限模块来控制网站中的角色和权限。我在身份验证中间件中添加了一些内容。我的句柄现在看起来像这样:
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->guest())
{
if ($request->ajax() || $request->wantsJson())
return response('Unauthorized.', 401);
return redirect()->guest('login');
}
if ( ! Auth::user()->can('access acp') )
{
if ($request->ajax() || $request->wantsJson())
return response('Unauthorised.', 403);
abort(403, "You do not have permission to access the Admin Control Panel. If you believe this is an error please contact the admin who set your account up for you.");
}
return $next($request);
}
Run Code Online (Sandbox Code Playgroud)
因此,如果用户未登录,我们会将其发送到登录页面,否则我们将检查是否具有访问acp的权限,如果没有,则向他们显示403错误。我已将403.blade.php添加到views / errors文件夹。但是,当我运行该代码时,我只会大呼一声!并且开发人员工具显示将退还500 ISE。我不明白为什么看不到自定义错误页面。
到目前为止,我已经尝试将环境切换到生产环境并关闭调试模式,但是该页面没有显示。我也尝试过抛出授权异常,但这没有什么不同。我也尝试使用,App::abort()但是我仍然得到了500 ISE。
我已经尝试使用Google搜索该问题,但找不到其他人遇到此问题。我真的很感激任何帮助。 …
如何向filter_input添加选项和标志?PHP 文档说要使用关联数组,但没有给出任何有关正确语法的示例。我尝试过各种格式,包括以下格式:
$textOpts = filter_input(INPUT_POST, "text", FILTER_SANITIZE_STRING, array("options" => FILTER_FORCE_ARRAY, "flags" => !FILTER_FLAG_ENCODE_LOW));
$textOpts = filter_input(INPUT_POST, "text", FILTER_SANITIZE_STRING, array("options" => array(FILTER_FORCE_ARRAY), "flags" => array(!FILTER_FLAG_ENCODE_LOW)));
Run Code Online (Sandbox Code Playgroud)
我似乎无法理解语法,我该怎么写呢?
我仍然是名称空间的新手,并且很难理解如何使用它们.我正在使用Silex Microframework并尝试设置我的文件夹结构.到目前为止,我有:
cms/
ACP/
Controller/
HomeController.php
View/
Front/
Controller/
HomeController.php
View/
Template/
page.php
home.php
app.php
bootstrap.php
Run Code Online (Sandbox Code Playgroud)
我正在尝试在Front/Controller文件夹中加载HomeController.在我的app.php文件中,我正在呼叫家里的控制器.
require_once __DIR__.'/../vendor/autoload.php';
$app = new Silex\Application();
$app['debug'] = true;
$app->get("/", "cms\Front\Controller\HomeController::index");
$app->get('/test', function() {
return new Symfony\Component\HttpFoundation\Response("Test successful");
});
return $app;
Run Code Online (Sandbox Code Playgroud)
如果我进入/test浏览器它工作正常.然而,当我去/那时我得到一个错误.
ControllerResolver.php第153行中的InvalidArgumentException:
类"cms\Front\Controller\HomeController"不存在.
我已经cms在composer.json和HomeController中定义为命名空间
<?php namespace cms\Front\Controller;
class HomeController {
public function index() {
return "Hello World, I'm the front page!";
}
}
Run Code Online (Sandbox Code Playgroud)
我也尝试将HomeController.php文件直接移动到cms目录中,将文件中的命名空间更改为just cms然后运行$app->get("/", "cms\HomeController::index");,但它仍然无效.我得到了不存在的相同错误.
这是我的作曲家档案:
{
"require": …Run Code Online (Sandbox Code Playgroud) 在我的 Laravel 应用程序中,我将前端和后端代码拆分到文件夹中。这些是app/Http/Controllers/BackEnd和app/Http/Controllers/FrontEnd。我认为定义两个命名空间BackEnd和FrontEnd. 我已将我的作曲家文件编辑为:
"autoload": {
"classmap": [
"app/Models",
"database"
],
"psr-4": {
"App\\": "app/",
"BackEnd\\": "app/Http/Controllers/BackEnd",
"FrontEnd\\": "app/Http/Controllers/FrontEnd"
}
},
Run Code Online (Sandbox Code Playgroud)
然后我运行 composer autodump 并像这样设置我的路由文件:
Route::group(['prefix' => 'webman', 'middleware' => 'auth', 'namespace' => 'BackEnd'], function()
{
Route::get('/', ['as' => 'webmanHome', 'uses' => 'HomeController@index']);
});
Run Code Online (Sandbox Code Playgroud)
但是当我浏览到时,localhost:8000/webman/我只是收到一个错误,Class App\Http\Controllers\BackEnd\HomeController does not exist. 控制器确实存在,这是文件:
<?php namespace BackEnd;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class HomeController extends Controller {
/**
* Display the admin home …Run Code Online (Sandbox Code Playgroud) 当我添加或编辑我的数据库表网站的条目时,我加载要修改的网站实例(或用于创建网站的空白实例).这很棒,这是我的控制器:
<?php namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Request;
use App\Models\User;
use App\Models\Status;
use App\Models\Website;
class WebsitesController extends Controller {
/**
* Show / Process the create website form to the user.
*
* @return Response
*/
public function create()
{
$statuses = Status::all();
$users = User::all();
$website = Website::find(0);
return view('admin/websites/create', [
'statuses' => $statuses,
'users' => $users,
'website' => $website
]);
}
public function update($id)
{
$statuses = Status::all();
$users = User::all();
$website = Website::findOrFail($id);
return view('admin/websites/update', …Run Code Online (Sandbox Code Playgroud) 我已按照文档为401和404错误创建了自定义错误模板.它们显示正确的错误消息,但是当您触发错误时,abort()您可以传递错误消息作为第二个参数.我需要输出什么变量来显示通过中止传递的消息?文档中没有任何内容告诉您如何在页面上输出该消息,并且任何对错误消息的搜索都会显示有关验证功能的信息,或者继续关于记录和触发错误,而不是如何在页面上输出它们.
这可能是一些XY问题,所以我将首先解释我想要做的事情.我正在尝试创建一个php文件来处理我的所有页面刷新AJAX调用.这意味着我希望能够向它发送一个类名,以及类构造函数所采用的变量列表,然后创建该类.
我可以创造好的课程.$class = new $className();适用于创建课程.问题是传递默认变量.大多数变量都是包含其他类的对象,所以我不能只在创建类时包含它,我需要在创建类时传递它们.
我正在思考以下问题:
$varStr = '';
$s = '';
foreach($vars as $var) {
switch($var['type']) {
case 'object':
$varStr .= $s . '$' . $var['value'];
break;
case 'variable':
$varStr .= $s . $var['value'];
}
$s = ',';
}
$class = new $className(echo $varStr);
Run Code Online (Sandbox Code Playgroud)
现在显然回声$ varStr不会在那里工作,但我不知道会是什么.有什么我可以做的,将我的数组中的变量输出到类构造函数中吗?我正在努力做甚么可能吗?有没有更好的办法?
虽然我理解我可以将整个数组传递给类构造函数,但这会使程序的主要部分复杂化,而我宁愿放弃单个页面进行AJAX刷新的想法而不是沿着那条路线走下去.
我有一个提交给控制器的表单,该控制器验证数据。如果验证失败,它会重定向回输入和错误。这是处理表单提交的方法:
<?php namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class UserController extends Controller {
/**
* Create a new user.
*
* @param Reqeust $request
*
* @return Void
*/
public function postCreate(Request $request)
{
$user = new User;
$rules = $user->rules();
$rules['password'] = 'required|confirmed|min:8';
$v = \Validator::make($request->except('_token', 'roles'), $rules);
if ($v->fails())
{
return redirect()->back()->withInput($request->except('_token', 'password', 'password_confirmation'))->withErrors($v);
}
$user->fill($request->except('_token', 'password', 'password_confirmation'));
$user->password = \Hash::make($request->input('password'));
$user->save();
return redirect()->route('webmanAccounts')->with('messages', [['text' => 'User account created', 'class' => 'alert-success']]);
}
Run Code Online (Sandbox Code Playgroud)
在显示表单的页面上,我检查name字段之一是否存在,如果存在,则使用数据填充 User 对象。问题 …
我正在使用Bootstrap-Vue来显示表格,并且我使用 vue-slot 添加了一个带有更新按钮的额外列。我有这个显示很好,当你点击按钮时我有一个方法被调用。在该方法中,我可以访问该项目的所有信息,但是我似乎无法找到访问该按钮的方法。我想禁用它并更改它的内容。如何访问按钮元素?我在这里创建了一个codepen 示例,它显示了我已经设置和需要做的事情。
<div id='app'>
<div>{{ this.output }}</div>
<b-table hover head-variant="dark"
id="pages-table"
:items="items"
:fields="fields">
<template slot="actions" slot-scope="data">
<button class="btn btn-dark" @click="update(data)">Update</button>
</template>
</b-table>
</div>
Run Code Online (Sandbox Code Playgroud)
new Vue({
el: "#app",
data: {
output: null,
items: [
{
id: 1,
name: "Tony"
},
{
id: 2,
name: "John"
},
{
id: 3,
name: "Paul"
}
],
fields: [
{
key: "id",
label: "ID",
sortable: true
},
{ key: "name" },
{ key: "actions" } …Run Code Online (Sandbox Code Playgroud) <div class="content-wrapper">
<div class="popup">
<div class="close">
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
.content-wrapper相对定位并包含所有页面内容(不仅仅是弹出窗口).
.popup绝对定位.
.close也绝对定位.
当光标进入弹出窗口时,我有一些javascript移动关闭(所以我有一个很好的关闭栏出现在侧面).我发现这样做的最好方法就是使用jQuery动画.隐藏/显示甚至会造成口吃效果.stop()无法解决.我的问题是试图将.clop隐藏在.popup后面.无论我为两个div设置什么z-index .close都不会落后于.popup.
是否有可能在另一个绝对定位的div中有一个绝对定位的div位于其父级后面,如果是这样,怎么样?
我正在尝试从字符串中删除特殊字符,准备在URL中使用它.这是我现在的代码:
public function __construct($string) {
$remove = array("!", "'", '"', "(", ")", ";", "@", "&", "=", "$", ",", "/", "?", "%", "#", "[", "]");
var_dump($string);
$this->string = $string;
$this->string = str_replace($remove, "", $this->string);
//$this->string = preg_replace("/[\s_\-:+]+/", "-", strtolower($this->string));
var_dump($this->string);
}
Run Code Online (Sandbox Code Playgroud)
这就是它的输出:
string(16) "Today's Quiz" string(13) "Today39s Quiz"
这没有任何意义......我决不会转换特殊字符或任何东西,那么39来自哪里?我无法追踪它.
我在循环问题中有旧的infowindows,其中最后一个循环的内容显示在所有infowindows中.是的我知道在Stack Overflow上已经有几个关于这个的问题,但它们似乎都不适用于我.
这是我的JavaScript:
var map;
var geocoder;
$(function () {
var mapOptions = {
zoom: startZoom,
center: new google.maps.LatLng(startLat, startLng)
}
var marker, i;
$('#map-canvas').height($('#map-canvas').width() / 2);
var mapOptions = {
zoom: startZoom,
center: new google.maps.LatLng(startLat, startLng)
}
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
if ( ! isAddress && $('#country').val() > 0) {
geocoder = new google.maps.Geocoder();
geocoder.geocode({'address': $('#country').find('option:selected').text()}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
map.fitBounds(results[0].geometry.viewport);
}
});
}
for (i = 0; i < distributors.length; i++) { …Run Code Online (Sandbox Code Playgroud) php ×10
laravel ×4
laravel-5 ×4
javascript ×2
namespaces ×2
autoload ×1
blade ×1
class ×1
css ×1
css-position ×1
eloquent ×1
filter-input ×1
forms ×1
laravel-5.2 ×1
mysqli ×1
oop ×1
replace ×1
silex ×1
validation ×1
vue.js ×1