小编pin*_*sia的帖子

Laravel 5 Route Group和Basic(/)GET Route in group

我正在使用管理面板工作Laravel 5.0 Web应用程序.我正面临着Routes的问题.我有如下的Grouped Admin Routes,

Route::group(['prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => ['user.admin']], function () {
    Route::get('login', [
        'as' => 'admin.login',
        'uses' => 'AuthController@getLogin'
    ]);
    Route::get('logout', [
        'as' => 'admin.login',
        'uses' => 'AuthController@getLogout'
    ]);
    Route::post('login', 'AuthController@postLogin');
});

Route::group(['prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => ['user.admin','auth', 'admin.acl']], function () {

    Route::get('dashboard', [
        'as'         => 'admin.dashboard',
        'uses'       => 'DashboardController@index',
        'permission' => 'admin_dashboard'
    ]);

    //Image Handler
    Route::get('images/{size}/{name?}',[
        'as'   => 'admin.images',
        'uses' => 'ImagesController@images'
    ]);

    Route::resource('user', 'UsersController');

    ........   

});
Run Code Online (Sandbox Code Playgroud)

事情很好.我可以毫无问题地使用以下,

http://domain.com/admin/dashboard
http://domain.com/admin/login …
Run Code Online (Sandbox Code Playgroud)

php laravel-routing laravel-5

15
推荐指数
2
解决办法
4362
查看次数

作曲家更新时Laravel 5出错

[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'Illuminate\Broadcasting\BroadcastServiceProvider' not found
Run Code Online (Sandbox Code Playgroud)

如何解决这个错误?

我是laravel框架的新手

php composer-php laravel-5

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

如果我声明空白页(strict_types = 1); 在PHP 7的顶部

最近我检查了PHP 7,特别是返回类型声明类型提示.我从源代码编译了PHP 7(来自Github的 master分支)并在Ubuntu 14.04虚拟框中运行它.我尝试运行以下代码来测试新的异常.但它给了一个空白页面.

<?php

function test(): string {

    return [];
}

echo test();
Run Code Online (Sandbox Code Playgroud)

然后我意识到我必须设置错误才能在屏幕上显示.所以我添加了ini_set('display_errors', 1);下面的老式,

<?php
ini_set('display_errors', 1);

function test(): string {

    return [];
}

echo test();
Run Code Online (Sandbox Code Playgroud)

TypeError根据这个Throwable接口 RFC ,这让我按照预期进行了操作

致命错误:未捕获TypeError:test()的返回值必须是/usr/share/nginx/html/test.php第7行/usr/share/nginx/html/test.php中返回的字符串类型数组:7堆栈跟踪:#0 /usr/share/nginx/html/test.php(10):在第7行的/usr/share/nginx/html/test.php中抛出test()#1 {main}

进一步挖掘我declare(strict_types=1);在顶部添加如下,

<?php declare(strict_types=1);

ini_set('display_errors', 1);

function test(): string {

    return [];
}

echo test();
Run Code Online (Sandbox Code Playgroud)

和爆炸,错误刚刚消失,留下我的空白页面.我无法弄清楚为什么它给我一个空白页?

php strict php-7

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

Windows容器无法启动时出现错误,"无法在网络上创建端点nat:HNS失败并显示错误:无法创建端点".

我一直在Windows Server 2016 TP5上尝试Windows容器.突然,我在运行带端口maping选项的容器时开始出错-p 80:80

c:\>docker run -it -p 80:80 microsoft/iis cmd
docker: Error response from daemon: failed to create endpoint sharp_brahmagupta on network nat: HNS failed with error : Failed to create endpoint.
Run Code Online (Sandbox Code Playgroud)

我确保没有其他容器正在运行,并且主机上的端口80未被任何其他服务使用.

有没有人面临同样的问题?

windows-server docker-container

7
推荐指数
3
解决办法
9557
查看次数

Laravel 5.1-通过Socialite的Facebook(客户端错误:400)

在Laracast(Laravel 5.0-Socialite)使用本教程,特别是直到12.11分钟,我已经成功设置了所有内容。但是,我正在使用Laravel 5.1

  • 定义了我的路线,但当前已注释掉回调提供程序,因为我只是想通过已获取的令牌获取用户详细信息:

    Route::get('auth/facebook', 'Auth\AuthController@redirectToProvider');
    //Route::get('auth/facebook/aaa', 'Auth\AuthController@handleProviderCallback');
    
    Run Code Online (Sandbox Code Playgroud)
  • 在中增加了必需品config>services.php

    'facebook' => [
     'client_id' => '##',
     'client_secret' => env('FB_SECRET_ID'),
     'redirect' => 'http://laratest.dev/auth/facebook',   
    ],
    
    Run Code Online (Sandbox Code Playgroud)

我决定暂时返回同一页面(auth/facebook)。这就是为什么我将退货设置domain.devv/auth/facebook为测试。

  • 在我的中AuthController.php,我设置:

    public function redirectToProvider(AuthenticateUser $authenticateUser, Request $request)
     {  
       return $authenticateUser->execute($request->has('code'));
     }
    
    Run Code Online (Sandbox Code Playgroud)
  • 最后,在我的AuthenticateUser.php

    use Illuminate\Contracts\Auth\Guard;  (PS. I changed Authenticator to Guard)
    
       class AuthenticateUser {
          private $users;
          private $socialite;
          private $auth;
    
    public function __construct(UserRepository $users, Socialite $socialite, Guard $auth)
     {
         $this->users = …
    Run Code Online (Sandbox Code Playgroud)

php facebook-graph-api laravel laravel-socialite laravel-5.1

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

Docker apache2不会考虑新的000-default.conf

我正在尝试将Laravel 5.2应用程序停靠.为此,我使用以下图像,

php:apache
mysql:5.7
Run Code Online (Sandbox Code Playgroud)

以下是我的 docker-compose.yml

web:
  build: .
  volumes:
    - ./:/var/www/html
  ports:
    - "9899:80"
  links:
    - db
  command : [/usr/sbin/apache2ctl, -D, FOREGROUND]

db:
  image: mysql:5.7
  volumes:
    - /home/data:/var/lib/mysql
  environment:
    MYSQL_DATABASE: custom
    MYSQL_ROOT_PASSWORD: custom
Run Code Online (Sandbox Code Playgroud)

和我的 Dockerfile

FROM php:apache
RUN apt-get update && docker-php-ext-install pdo pdo_mysql
RUN rm -f /etc/apache2/sites-available/000-default.conf
ADD ./settings/000-default.conf /etc/apache2/sites-available
Run Code Online (Sandbox Code Playgroud)

双方Dockerfiledocker-compose.yml都在laravel根目录下.要运行基于laravel的应用程序,服务器必须指向public文件夹.所以,你可以看到我apache2用以下000-default.conf文件替换了默认配置文件,

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/public

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

一切都运行正常,docker-compose up …

php apache docker dockerfile docker-compose

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