我正在使用管理面板工作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) [Symfony\Component\Debug\Exception\FatalErrorException]
Class 'Illuminate\Broadcasting\BroadcastServiceProvider' not found
Run Code Online (Sandbox Code Playgroud)
如何解决这个错误?
我是laravel框架的新手
最近我检查了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)
和爆炸,错误刚刚消失,留下我的空白页面.我无法弄清楚为什么它给我一个空白页?
我一直在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未被任何其他服务使用.
有没有人面临同样的问题?
在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
我正在尝试将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)
双方Dockerfile并docker-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 ×5
laravel-5 ×2
apache ×1
composer-php ×1
docker ×1
dockerfile ×1
laravel ×1
laravel-5.1 ×1
php-7 ×1
strict ×1