GVKun编程网logo

Laravel:处理 Laravel API URL(laravel api resource)

6

在本文中,我们将给您介绍关于Laravel:处理LaravelAPIURL的详细内容,并且为您解答laravelapiresource的相关问题,此外,我们还将为您提供关于Laravel+React:

在本文中,我们将给您介绍关于Laravel:处理 Laravel API URL的详细内容,并且为您解答laravel api resource的相关问题,此外,我们还将为您提供关于Laravel + React:处理 API 数据、Laravel 52 $errors 不正常工作 laravel 5 教程 laravel开发教程 laravel怎么、Laravel admin 调用api时验证用户,Laravel guard 正...、Laravel API 路由器总是找不到 404,即使我可以看到 Laravel 索引页面的知识。

本文目录一览:

Laravel:处理 Laravel API URL(laravel api resource)

Laravel:处理 Laravel API URL(laravel api resource)

如何解决Laravel:处理 Laravel API URL?

我有上传到服务器上的 API。 网址如下所示: api.subdomain.domain.com/ 我已经让 .htaccess 直接面向公众 但是访问时应该是这样的: api.subdomain.domain.com/api/login

我如何像 api.subdomain.domain.com/login 一样直接访问它。

这是我的.htaccess

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L,QSA]

我已尝试添加 /api,但在访问我想要的 URL 时显示 404 错误

解决方法

您需要打开 RouteServiceProvider.php。取决于你使用的是哪个版本的 Laravel find function map{Route File: web.php/api.php/any custom file}Routes()(如果版本早于 Laravel 8),否则你会看到并添加前缀到您的路线文件。喜欢enter image description here

Laravel + React:处理 API 数据

Laravel + React:处理 API 数据

首先,我怀疑您的 welcome.blade.php 不在您的位置

return (
        <div className="example">
            <SideBar />
            <Chart />
            <Table />
        </div>
    );

通常在 .js 文件中。

您需要做的是所谓的“提升状态”。

这意味着您从各个组件中获取状态,并将它们向上移动到包装器组件。

在您的 App.js 文件中。如果您没有更改它,它仍然可以称为 Example.js。您将在此处看到:

return (
        <div className="example">
            <SideBar />
            <Chart />
            <Table />
        </div>
    );

取出 sidebarcharttable 组件中所有状态和函数的引用。

将该内容添加到 App.js 文件中。

现在,当您想将信息传递给这些组件时,您可以将它们作为 props 发送。

例如:

return (
        <div className="example">
            <SideBar tickers={tickers}/>
            <Chart data={data} />
            <Table data={data}/>
        </div>
    );

这些然后成为所谓的 Controlled Componenents 并且它们是无状态的。他们只依赖传递给他们的信息。因此,当 App.js 中的状态发生变化时,它会更新较低的组件。

看看:https://www.youtube.com/user/programmingwithmosh 他真的很好,正如你之前提到的那样,他的英语很好,而且很深入。

祝你好运,并在使用锁定进行一些教育和自我改善方面做得很好。

Laravel 52 $errors 不正常工作 laravel 5 教程 laravel开发教程 laravel怎么

Laravel 52 $errors 不正常工作 laravel 5 教程 laravel开发教程 laravel怎么

as of 5.2, routes.php is by default already called in the context of a [‘middleware’=>’web’] by routeserviceprovider. but in routes.php default generation of auth routes, the route::group call is still happening by default - so if you delete that route::group declaration from routes.php the application then correctly shows errors.

http://stackoverflow.com/questions/34438463/laravel-5-2-errors-not-appearing-in-blade/36253445#36253445?newreg=d2be163070544c9faa15d63a39c84a21

'').addClass(''pre-numbering'').hide(); $(this).addClass(''has-numbering'').parent().append($numbering); for (i = 1; i '').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介绍了Laravel 52 $errors 不正常工作,包括了laravel,error方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Laravel admin 调用api时验证用户,Laravel guard 正...

Laravel admin 调用api时验证用户,Laravel guard 正...

1.你的应用可能:分为前端用户和后端管理用户。
2.你的应用可能:既是传统php渲染的html 应用,同时也为其他应用(如:安卓手机应用)提供api接口服务。
这些需求laravel 都帮你考虑到了!

在conf/auth.php 中Guard 可以配置 用户和使用调用中间件(middleware)模式

它解决了,不同客户在不同环境下(api,web,admin) 使用不同用户角色(前端用户,后端用户)权限认证需求

[
''guards'' => [
''web'' => [
//表示使用web中间件下 使用“session 驱动” 驱动位置:vendor\laravel\framework\src\Illuminate\Auth\SessionGuard.php
//用户为users --具体定义users模型 在provider中定义
''driver'' => ''session'',
''provider'' => ''users'',
],

''api'' => [
//表示使用api中间件下 使用“token 驱动”
//用户为users --具体定义users模型 在provider中定义
//注意api 没有默认配置 Authenticate 中间件-------需要自己手动在 app/http/kernel.php 中添加
''driver'' => ''token'',
''provider'' => ''users'',
''hash'' => false,
],
''admin'' => [
//表示使用admin中间件下 使用“session 驱动”
//用户为users --具体定义users模型 在provider中定义
''driver''   => ''session'',
''provider'' => ''admin'',
],
]
]

顺便讲下用户的数据提供者,它只是定义用户类型,还有指定对应的用户模型

[
''providers'' => [
//表示users 用户 使用App\User::class模型作为用户模型
''users'' => [
''driver'' => ''eloquent'',
''model'' => App\User::class,
],
//当然还可以配置其他用户,比如admin 后台用户
''admin'' => [
''driver'' => ''eloquent'',
''model'' => App\Admin::class,
],
]
]

2|0使用守卫(Guard)方法
2|1指定guard,获取当前会话用户信息

Auth::guard(''web'')->user()
2|2使用默认 guard,获取当前会话登录信息

Auth::user();
注:默认配置在 config/auth.php

''defaults'' => [
''guard'' => ''web'',
''passwords'' => ''users'',
]

如果是上面的配置,那auth::user() 就相当于 Auth::guard(''web'')->user();

3|0如何在路由中使用 权限认证?
3|11.首先要理解 laravel 中间件使用方法:
中间件默认在 app\Http\Kernel.php 中注册 有以下数组(规则):

注册在 $middleware 数组中的中间件 所有路由每次都会调用

protected $middleware = [
\App\Http\Middleware\TrustProxies::class,
\Fruitcake\Cors\HandleCors::class,
\App\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
注册在 $middlewareGroups 数组中的中间件是路由组,一次调用别名其中的中间件都会调用(打包调用)

protected $middlewareGroups = [
''web'' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],

''api'' => [
''throttle:60,1'',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
注册在 $routeMiddleware 数组可以单独使用,也可以配合middlewareGroups  一起使用
protected $routeMiddleware = [
''auth'' => \App\Http\Middleware\Authenticate::class,
''auth.basic'' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
''bindings'' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
''cache.headers'' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
''can'' => \Illuminate\Auth\Middleware\Authorize::class,
''guest'' => \App\Http\Middleware\RedirectIfAuthenticated::class,
''password.confirm'' => \Illuminate\Auth\Middleware\RequirePassword::class,
''signed'' => \Illuminate\Routing\Middleware\ValidateSignature::class,
''throttle'' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
''verified'' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
];

3|2路由使用用户认证方法(使用默认的auth 中间件方法)
//通过auth中间件使用其中的 ”admin guard”验证中间件
Route::middleware(''auth:admin'')->get(''/'', function () {
return view(''welcome'');
});
说明:auth:admin

auth 中间件/其中的冒号代表传参,参数为 admin 就是在guard 中注册的 admin 如下:

[
''admin'' => [
//表示使用admin中间件下 使用“session 驱动”
//用户为users --具体定义users模型 在provider中定义
''driver''   => ''session'',
''provider'' => ''admin'',
]
]
这个auth:admin代表:

我这个路由需要进行用户认证:认证是否为 admin 用户,根据admin 守卫(guard)的配置,将会调用session模块验证用户

4|0Laravel Authenticate认证流程
laravel 权限认证,全部在Authenticate 中间件完成,默认文件在  \App\Http\Middleware\Authenticate.php

通过kernel (注册于  App\Http\Kernel.php)注入到中间件模块中

它通过guard 模块来实现认证,guard在上面所说的config\auth.php 中注册

在Authenticate 中使用了 guard 模块来验证用户是否登录:

以下代码片段位于:Illuminate\Auth\Middleware\Authenticate

class Authenticate implements AuthenticatesRequests
{
/**
* The authentication factory instance.
*
* @var \Illuminate\Contracts\Auth\Factory
*/
protected $auth;

/**
* Create a new middleware instance.
*
* @param  \Illuminate\Contracts\Auth\Factory  $auth
* @return void
*/
public function __construct(Auth $auth)
{
$this->auth = $auth;
}
//...
}

当路由组件使用了“auth” 也就是   \App\Http\Middleware\Authenticate::class 中间件时就会触发权限认证

之后的具体操作就有中间件来完成了,比如发现未登录就跳转到登录页

5|0实战:Laravel-Admin 调用查询接口,不允许未登录用户访问api
在 app/http/Kernel.php 中修改api 中间件的使用,因为默认admin guard 使用的session 驱动,所有需要打开 token,session 中间件的支持

protected $middlewareGroups = [
''web'' => [
\App\Http\Middleware\EncryptCookies::class,//启用token 中间件
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,//启用session 中间件
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,//验证csrf 中间件
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],

''api'' => [
\App\Http\Middleware\EncryptCookies::class,//新增的 启用token
\Illuminate\Session\Middleware\StartSession::class,//新增的 启用session 中间件
\App\Http\Middleware\VerifyCsrfToken::class,//新增的 启用csrf 中间件
''throttle:60,1'',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];

在路由界面添加需要的路由并在中间件中加上:"admin.auth" 表示使用 admin 权限验证 就ok了

Route::middleware(''admin.auth'')->get(''/company'', function (Request $request) {
return Company::select([''id'',"name as text"])->get();
});

Laravel API 路由器总是找不到 404,即使我可以看到 Laravel 索引页面

Laravel API 路由器总是找不到 404,即使我可以看到 Laravel 索引页面

如何解决Laravel API 路由器总是找不到 404,即使我可以看到 Laravel 索引页面?

操作系统:windows server 2019

网络服务器:Apache

Laravel:8.46.0

我从我的另一台计算机上克隆了这个项目,另一台计算机正在安装 XAMPP 包。

这台电脑,我分别安装了apache、MysqL和PHP。

在另一台计算机上,所有 api url 都在工作。

我已经在 httpd.conf 中设置了虚拟主机,如下所示。

关于服务器名,我设置的是我的真实域名,不是这样的。

<VirtualHost *:80>
  DocumentRoot "C:\Apache24\htdocs"
  ServerName myDomainName
  ErrorLog "C:\Apache24\htdocs\project_name_error.log"
  CustomLog "C:\Apache24\htdocs\project_name_access.log" combined
  DirectoryIndex index.PHP
  <Directory "C:\Apache24\htdocs"> 
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

当我用浏览器访问我的IP时,我可以看到laravel的索引页面。但是当我想输入一个api url时,它总是显示404 not found。为什么?

我正在尝试 api url 就像这三个:

http://domainName/project_name/public/api/
http://domainName/public/api/
http://domainName/api/

顺便说一句,在我的另一台电脑上,我可以输入第一个 url 来获取我的资源。

有什么建议吗?

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

我们今天的关于Laravel:处理 Laravel API URLlaravel api resource的分享已经告一段落,感谢您的关注,如果您想了解更多关于Laravel + React:处理 API 数据、Laravel 52 $errors 不正常工作 laravel 5 教程 laravel开发教程 laravel怎么、Laravel admin 调用api时验证用户,Laravel guard 正...、Laravel API 路由器总是找不到 404,即使我可以看到 Laravel 索引页面的相关信息,请在本站查询。

本文标签: