1.由于用mac开发,安装了mamp集成开发环境破解
http://www.ifunmac.com/2018/02/mamp-4-3/
2.laravel官网下载5.4版本
http://www.golaravel.com/download/
项目代码放在htdocs目录下
image.png
端口用默认8888:
image.png
laravel基于IOC容器,类之间的耦合度很低
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/home';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest', ['except' => 'logout']);
}
}
路由的基本使用
(1)首先在route.php文件添加一个路由:
Route::get('test', function () {
return "test route";
});
(2)将路由引导到控制器:
Route::get('test', 'TestController@test');
浏览器输入http://Host/test即可访问到TestController->test()
Laravel提供的基本路由方法还有很多,例如:
Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);
Http8种访问方法
Get方法:常用的方法,略;
Post方法:常用的方法,略;
Head方法:与get方法类似,主要是为了获取某个访问的头部信息,服务器不返回请求内容;
PUT方法:请求往服务器上存文件;
DELETE方法:请求删除服务器上的文件;
TRACE方法:就是获取服务器收到的来自客户端的请求信息(收发调试),一般用于调试服务器;
Connect方法:把服务器作为跳板,让服务器代替用户去访问其它网页,之后把数据原原本本的返回给用户;
Options方法:获取服务器URI所支持的方法,或用于检查服务器的性能,ajax进行跨域访问时,先发送options方法来判断请求是否安全;
为了使用方便,laravel允许一个路由使用多种访问方法,例如:
Route::match(['get', 'post'], 'test', function () {});
或
Route::any('test', function () {});
也可以为路由添加条件验证, 如规定url必须带参数,如:
Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) {});
或者所带参数可以缺省,如:
Route::get('user/{id?}', function ($id="123"){});
或者所带参数满足正则表达式,如:
Route::get('user/{name}', function ($id){})->where(["name"=>"[A-Z]+"]);
或者希望所有路由中的某参数必须满足某个条件,可以在RouteServiceProvider的boot方法中添加:
public function boot()
{
Route::pattern('id', '[0-9]+');
parent::boot();
}
为了代码简洁,laravel还允许为路由定义别名:
Route::get('user/profile', 'UserController@showProfile')->name('profile');
使用时:
$url = route('profile');
$url = route('profile', ['id' => 1]);
return redirect()->route('profile');
路由的群组使用
为了更好的管理路由,laravel允许使用群组的概念来描述一组路由:
Route::group([
'middleware' => 'auth', //使用中间件
'namespace' => 'Admin', //定义命名空间
'domain' => '{account}.myapp.com', //用于获取子域名
'prefix' => 'admin', //用于为路由前缀
'as' => 'admin::', //定义群组别名,代码调用时可使用的前缀
],
function () {
Route::get('/', function () {
// Uses Auth Middleware
});
Route::get('user/profile', function () {
// Uses Auth Middleware
});
});
路由模型绑定
路由模型绑定是为了跨越控制层,直接通过路由来获取model的数据的,用法上又分为显式路由绑定和隐式路由绑定。
显式路由绑定如下:
Route::model('user', App\User::class);
Route::get('profile/{user}', function (App\User $user) {});
隐式路由绑定如下:
Route::get('api/users/{user}', function (App\User $user){}); //区别是不用定义显式绑定model
也可以用自定义方法来处理参数与model之间的关系:
Route::bind('user', function ($value) {
return App\User::where('name', $value)->first();
});
最近mac连无线一直特别卡,DNS192.168.1.1,换了114.114.114.114/8.8.8.8就舒服了一点。
总结:本周没有继续学高数,因为今年的工作的时间又侵占了很多个人所支配的时间,自学不进去了,今年的计划可能又变了,唉真的不想变,但是不能骗自己,又继跟身边的人咨询了些,年底报名去上周末班吧,现在开始学个流行框架,搞个小项目体验一下,感觉真的好可以用在单位项目开发上。
网友评论