小编Sty*_*hon的帖子

在MySQLi准备的语句中STMT代表什么?

MySQLi预处理语句使用变量,$stmt但我找不到STMT代表什么或为什么使用它.对于其他变量(例如$query$results)一直对我有意义,我只是想知道,为什么$stmt,背后的历史是什么?

php mysqli prepared-statement

4
推荐指数
1
解决办法
863
查看次数

Laravel返回HttpException对象而不是显示自定义错误页面

我正在使用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搜索该问题,但找不到其他人遇到此问题。我真的很感激任何帮助。 …

php error-handling laravel-5.2

4
推荐指数
1
解决办法
7112
查看次数

如何向filter_input添加选项和标志

如何向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)

我似乎无法理解语法,我该怎么写呢?

php filter-input

3
推荐指数
1
解决办法
1918
查看次数

Silex名称空间

我仍然是名称空间的新手,并且很难理解如何使用它们.我正在使用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)

php namespaces silex

3
推荐指数
1
解决办法
1229
查看次数

Laravel 5 找不到自定义命名空间的类

在我的 Laravel 应用程序中,我将前端和后端代码拆分到文件夹中。这些是app/Http/Controllers/BackEndapp/Http/Controllers/FrontEnd。我认为定义两个命名空间BackEndFrontEnd. 我已将我的作曲家文件编辑为:

"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 namespaces autoload laravel laravel-5

3
推荐指数
1
解决办法
3165
查看次数

您是否可以使用Laravel 5填充Eloquent模型而无需在数据库中创建条目

当我添加或编辑我的数据库表网站的条目时,我加载要修改的网站实例(或用于创建网站的空白实例).这很棒,这是我的控制器:

<?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)

php laravel eloquent laravel-5

2
推荐指数
1
解决办法
6090
查看次数

在Laravel 5中自定义错误页面上的中止输出错误消息

我已按照文档为401和404错误创建了自定义错误模板.它们显示正确的错误消息,但是当您触发错误时,abort()您可以传递错误消息作为第二个参数.我需要输出什么变量来显示通过中止传递的消息?文档中没有任何内容告诉您如何在页面上输出该消息,并且任何对错误消息的搜索都会显示有关验证功能的信息,或者继续关于记录和触发错误,而不是如何在页面上输出它们.

php laravel blade laravel-5

2
推荐指数
1
解决办法
1113
查看次数

如何将一组变量传递给一个类

这可能是一些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 oop class

1
推荐指数
1
解决办法
74
查看次数

Laravel 5 - 为什么在返回错误时输入为空?

我有一个提交给控制器的表单,该控制器验证数据。如果验证失败,它会重定向回输入和错误。这是处理表单提交的方法:

<?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 对象。问题 …

php forms validation laravel laravel-5

1
推荐指数
1
解决办法
3948
查看次数

如何更新在 bootstrap-vue 中点击的按钮

我正在使用Bootstrap-Vue来显示表格,并且我使用 vue-slot 添加了一个带有更新按钮的额外列。我有这个显示很好,当你点击按钮时我有一个方法被调用。在该方法中,我可以访问该项目的所有信息,但是我似乎无法找到访问该按钮的方法。我想禁用它并更改它的内容。如何访问按钮元素?我在这里创建了一个codepen 示例,它显示了我已经设置和需要做的事情。

HTML


<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)

JavaScript


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)

javascript vue.js bootstrap-vue

1
推荐指数
1
解决办法
1241
查看次数

隐藏其父母背后的div?

<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位于其父级后面,如果是这样,怎么样?

css css-position absolutelayout css-transitions

0
推荐指数
1
解决办法
2万
查看次数

从字符串叶子中删除撇号39

我正在尝试从字符串中删除特殊字符,准备在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来自哪里?我无法追踪它.

php replace special-characters

0
推荐指数
1
解决办法
131
查看次数

Google Maps API infowindows都具有相同的内容

我在循环问题中有旧的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)

javascript google-maps-api-3

0
推荐指数
1
解决办法
1137
查看次数