通过雄辩的模型执行查询后,如何查看我的 mssql 服务器中运行的查询?
在我的 Laravel Tinker 会话中,我运行以下命令: $records = MyModel::with('parent','children')->whereNull('parent_id')->get(); 模型是: 命名空间 App\Models; 使用 Illuminate\Database\
调用未定义的方法 App\Models\Post::getContent()
所以我昨天才开始使用 Laravel 和 Orchid... 现在我遇到了这个问题 我想为所有帖子创建一个数据页面 所以我创建布局:PostListLayout PostListLayout 类扩展了 Table...
我无法让策略在我的 Laravel 项目中工作,我安装了一个新项目来从头开始测试,我有这个控制器: 我无法让策略在我的 Laravel 项目中工作,我安装了一个新项目来从头开始测试,我有这个控制器: <?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Models\User; class UserController extends Controller { public function index() { $this->authorize('viewAny', auth()->user()); return response("Hello world"); } } 本政策: <?php namespace App\Policies; use Illuminate\Auth\Access\Response; use App\Models\User; class UserPolicy { public function viewAny(User $user): bool { return true; } } 这是我的模型 <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable { use HasApiTokens, HasFactory, Notifiable; /** * The attributes that are mass assignable. * * @var array<int, string> */ protected $fillable = [ 'name', 'email', 'password', ]; /** * The attributes that should be hidden for serialization. * * @var array<int, string> */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast. * * @var array<string, string> */ protected $casts = [ 'email_verified_at' => 'datetime', 'password' => 'hashed', ]; } 我收到错误 403:此操作未经授权。我希望有人能帮助我解决我的问题。谢谢你 我也尝试过修改AuthServiceProvider文件,但没有任何改变。 必须在 App\Providers\AuthServiceProvider 中添加您的策略吗? protected $policies = [ User::class => UserPolicy::class ]; 您需要指定您正在使用的模型。具体来说,就是User。因此,传递当前登录的用户: $this->authorize('viewAny', auth()->user()); 此外,您正在尝试验证用户是否有权访问该页面。确保尝试访问该页面的人是用户,以便策略可以授权或不授权。 要在没有入门套件的情况下进行测试,请创建一个用户并使用它登录。 <?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Auth; class UserController extends Controller { public function index() { $user = \App\Models\User::factory()->create(); Auth::login($user); $this->authorize('viewAny', auth()->user()); return response("Hello world"); } } 但是,如果您希望授予访客用户访问权限,您可以使用 ? 符号将 User 模型设为可选: public function viewAny(?User $user) { return true; }
Laravel POST 方法返回状态:405 不允许在 POST 方法上使用方法
请查找以下信息: NoteController.php 请查找以下信息: NoteController.php <?php namespace App\Http\Controllers; use App\Http\Requests\NoteRequest; use App\Models\Note; use Illuminate\Http\JsonResponse; class NoteController extends Controller { public function index():JsonResponse { $notes = Note::all(); return response()->json($notes, 200); } public function store(NoteRequest $request):JsonResponse { $note = Note::create( $request->all() ); return response()->json([ 'success' => true, 'data' => $note ], 201); } public function show($id):JsonResponse { $note = Note::find($id); return response()->json($note, 200); } public function update(NoteRequest $request, $id):JsonResponse { $note = Note::find($id); $note->update($request->all()); return response()->json([ 'success' => true, 'data' => $note, ], 200); } public function destroy($id):JsonResponse { Note::find($id)->delete(); return response()->json([ 'success' => true ], 200); } } NoteRequest.php <?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class NoteRequest extends FormRequest { public function authorize() { return true; } public function rules() { return [ 'title', 'required|max:255|min:3', 'content', 'nullable|max:255|min:10', ]; } } Note.php(模型) <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Note extends Model { use HasFactory; protected $guarded = []; } api.php <?php use App\Http\Controllers\NoteController; use Illuminate\Support\Facades\Route; Route::prefix('v1')->group(function () { Route::resource('/note', NoteController::class); }); php artisan 路线:列表 GET|HEAD / ...................................................................................................................... POST _ignition/execute-solution ............... ignition.executeSolution › Spatie\LaravelIgnition › ExecuteSolutionController GET|HEAD _ignition/health-check ........................... ignition.healthCheck › Spatie\LaravelIgnition › HealthCheckController POST _ignition/update-config ........................ ignition.updateConfig › Spatie\LaravelIgnition › UpdateConfigController GET|HEAD api/v1/note .......................................................................... note.index › NoteController@index POST api/v1/note .......................................................................... note.store › NoteController@store GET|HEAD api/v1/note/create ................................................................. note.create › NoteController@create GET|HEAD api/v1/note/{note} ..................................................................... note.show › NoteController@show PUT|PATCH api/v1/note/{note} ................................................................. note.update › NoteController@update DELETE api/v1/note/{note} ............................................................... note.destroy › NoteController@destroy GET|HEAD api/v1/note/{note}/edit ................................................................ note.edit › NoteController@edit GET|HEAD sanctum/csrf-cookie .................................. sanctum.csrf-cookie › Laravel\Sanctum › CsrfCookieController@show 迅雷请求(同邮递员) JSON 请求 { "title": "Hello World", "content": "Lorem ipsum." } 尝试发出 JSON POST 请求并获取状态:405 方法不允许并且我正在使用 php artisan 服务,如果需要,我可以提供 GIT 项目。请告诉我。 您的验证规则看起来不正确。在您的 NoteRequest 类中,规则应该是一个关联数组,其中键是字段名称,值是验证规则。但是,在您的代码中,规则被定义为以逗号分隔的字符串列表。这可能会导致验证失败并返回 405 Method Not allowed 错误。 public function rules() { return [ 'title' => 'required|max:255|min:3', 'content' => 'nullable|max:255|min:10', ]; }
可以在运行时扩展或使用不同的类吗? 例子: 假设我们有一个名为 Player 的模型(我们的 A 模型) 可以在运行时扩展或使用不同的类吗? 示例: 假设我们有一个 model 称为 Player(我们的 A 模型) <?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Player extends Model{ } 我们还有另外 2 个型号(B 和 C 型号) <?php namespace App\Models; use Illuminate\Database\Eloquent\Model; protected $connection= 'db_b'; class PlayerInfoB extends Model{ function getName(){ return $this->name; } } 我们的C型号 <?php namespace App\Models; use Illuminate\Database\Eloquent\Model; protected $connection= 'db_c'; class PlayerInfoC extends Model{ function getName(){ return $this->name_g; } } 模型A (Player)如何在运行时根据配置或其他数据扩展Model B or C 为什么我需要这个。 我有 2 个或更多不同的表,这些表的列有不同的名称,例如: Table 1 - name Table 2 - name_g Table 3 - name_full 所以我需要一个可以随时调用的包装器getName(),而无需检查现在使用的表。 $player = Player::get(); echo $player->getName(); 如果有不清楚的地方,请评论,我会更新我的问题。 更新基于madalin-ivascu答案可以这样完成吗? class Player extends Model{ protected $model; public function __construct(){ $this->setModel(); parent::__construct(); } protected function setModel(){ $this->model = $this->column_model_name } function getAttributeName(){ return $this->model->getName(); } } 如果不使用 eval 或 dirty hacks,就不可能在运行时编写一个类。您必须重新考虑您的类设计,因为您不太可能需要通过良好的设计来做到这一点。 您可以做的是使用方法 setTable 和 on: 在运行时更改模型实例上的表和数据库连接 Player::on('db_b')->setTable('player_info_b')->find($id); 另一种方法(首选)是定义模型 PlayerInfoC 和 PlayerInfoB 来扩展您的 Player 模型,然后根据您的情况在需要时实例化类 B 或 C。 在您的代码中,您的脚本必须具有您检查的状态,以便知道何时使用正确的模型? 既然如此,为什么不在 get name 中使用参数呢? class Player extends Model{ function getName($field){ return isset($this->{$field}) ? $this->{$field} : null; } } 如果你经常这样做,那么使用魔法方法: class Player extends Model{ function __get($key){ return isset($this->{$field}) ? $this->{$field} : null; } } ... echo $myModelInstance->{$field}; http://php.net/manual/en/language.oop5.overloading.php#object.get 在 Laravel 中,当你通过集合方法拉回数据时,它无论如何都会执行这个神奇的方法,因为所有属性都存储在称为属性的嵌套对象中,因此 __set() 和 __get() 看起来像这样: function __get($key){ return isset($this->attributes->{$key}) ? $this->attributes->{$key} : null; } function __set($key, $value){ return $this->attributes->{$key} = $value; } 建议后者带有属性子集,这样可以防止数据与返回的数据库列名称与模型中已使用的名称发生冲突。 这样,您只需在创建的每个模型中将一个属性名称作为保留名称进行管理,而不必担心您使用的数百个 var 名称会覆盖模型或模型扩展中的另一个属性名称。 使用该模型值来调用函数 $player = Player::get(); echo Player::getName($player->id,'PlayerInfoC'); 在 Player 模型中您只需调用 public static function getName($id,$class) return $class::where('player_id',$id)->getName();//each class will have the function } ps:您需要进行一些验证来测试该名称是否存在 另一种选择是在模型之间创建关系 您可以在模型中使用与以下相同的启动方法来执行此操作: protected static function booted() { if (<--your condition-- >) { $traitInitializers[static::class][] = 'boot' . ExampleTrait::class; $traitInitializers[static::class][] = 'boot' . Organizations::class; } }
无法使用 _meta 类(Django)访问模型字段的“on_delete”参数
标题。我试图在这里访问字段“org”的 on_delete 参数: 类 OrgLocation(models.Model): org = models.OneToOneField( 组织,primary_key=True,on_delete=models。
链接:https://github.com/tensorflow/models/blob/master/research/object_detection/colab_tutorials/eager_few_shot_od_training_tf2_colab.ipynb 我已经尝试过上面的 google colab 来训练对象检测...
调用未定义的方法 User::hasPermission()
当我想要进行多角色登录时遇到问题,我还使用 Spatie\Permission 并在用户模型上实现了 HasRoles,如下所示 命名空间 App\Models; // 使用 Illuminate\Contracts\Auth\
如何在 laravel 10 中使用 Laravel-mix
似乎无法配置 laravel-mix 包。 嘿,我想在 laravel 10 中使用 laravel-mix 包,但我似乎无法正确配置它,因为当我运行 npx mix 时,我不断收到错误...
我正在尝试在 Laravel Inerita (Vue.js) 上设置本地化。我知道 https://github.com/mcamara/laravel-localization,但这不支持 Inertia(至少我没有成功
Composer 版本匹配错误 laravel + spatie medialibrary
我尝试通过 laravel 安装程序使用 laravel new 创建一个新的 laravel 应用程序。 这工作没有问题。当我尝试安装 spatie/medialibrary 时,我收到以下错误...
如何使用 vitest 和 vue-test-utils 测试 Vuetify 3 select?
我在表单中有一个 v-select,我想用 vitest 和 vue-test-utils 进行测试。 我在表单中有一个 v-select,我想用 vitest 和 vue-test-utils 进行测试。 <v-select clearable :items="models" item-value="id" item-text="name" ref="model-select" required="true" v-model="selectedModel" ></v-select> 我尝试用我在here找到的两种方法来测试它。带注释的代码是一种方法,未注释的代码是第二种方法。 test('it fills the form', async () => { models = [ { id: '1', name: 'foo', }, { id: '2', name: 'bar', }, ]; await nextTick(); // const select = wrapper?.findComponent({ref: 'model-select'}); // expect(select?.exists()).toBeTruthy(); // select?.vm.selectItem('foo'); // await nextTick(); wrapper?.find('[data-testid="model-select"]').trigger('click'); await nextTick(); wrapper?.find('.menuable__content__active')?.findAll('.v-list-item')?.at(0)?.trigger('click'); await nextTick(); }); 我似乎找不到正确的解决方案,DOM 包装器要么不知道选择项目的方法(第一种方法),要么是空的,因为它找不到 vuetify 选择菜单(第二种方法) 有人遇到同样的问题并找到适合我使用的软件包的解决方案吗? 我找到了答案。您无法访问底层 html 的值,而是访问组件实例并获取值 import { mount } from '@vue/test-utils' describe('my test', () => { wrapper = mount(MySelect) test('it fills the form', async () => { models = [ { id: '1', name: 'foo' },{ id: '2', name: 'bar',}, ]; const component = wrapper.findComponent('[data-testid="model-select"]') await component.setValue(models[0]) console.log('new value', component.vm.modelValue) }) 我花了几天时间尝试解决同样的错误。我希望我有所帮助。 问候!
Laravel 10 Vite“npm run build”创建空文件
由于某种原因,运行该命令时,某些脚本会编译,而某些脚本的内容会被“删除”。这是我的 vite.config.js 文件: 从“laravel-vite-plugin”导入 laravel; 导入vu...
Laravel 11 cors 错误 - 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:
从来源“https://laravel-react-survey-form.onrender.com”访问“https://laravel-react-survey-form-production.up.railway.app/api/signup”处的 XMLHttpRequest ' 已被 CORS p 锁定您的文本...
Cloudfoundry Laravel“无法打开输入文件:artisan”
我正在尝试使用 CF CLI 推送 Laravel 应用程序。 我创建了一个新的 Laravel 应用程序(manifest.yml)并尝试部署它,但收到错误“无法打开输入文件:artisan”...
我需要知道如何在 Laravel 项目中正确使用 dd() 函数。 例如 - 我有任务来调试我的项目(PHP /Laravel)中的一些代码和功能,这总是需要我
Inertia.js 和 Laravel - 视图如何自动接收 auth::user() 对象?
我目前正在开发 Laravel 8 项目,第一次尝试将提供的 Laravel Breeze 脚手架与 Inertia.js 和 Vue 一起使用。在最初的仪表板脚手架中,仪表板...
我有一个不是我开发的 Laravel 应用程序。每个页面的底部都有一些奇怪的栏,它是某种类型的 Laravel 调试器工具。 我相信它存储在存储/调试器中。是
Laravel webhook 客户端在 Whatsapp Webhook url 上出现错误 405
我尝试在whatsapp云中使用laravel进行webhook,但它显示此错误 脸书错误 并在 ngrok 中显示此错误 恩格罗克错误 我使用 https://github.com/spatie/laravel-webhook-client
在 Laravel 9 中,变异器有不同的实现。以下示例来自官方文档。 受保护函数firstName():属性 { 返回属性::make( ...
将 Laravel 的 .env 文件复制到 Docker 容器中
设置 我正在 Ubuntu 服务器上运行 Docker,并尝试创建一个 Laravel 容器来使用 artisan 运行我的网站。 Laravel 项目位于 GitHub 存储库内,我将该项目克隆到...
我有一个 Laravel 应用程序,已从 Laravel 10 升级到 Laravel 11。它位于 Alpine/Docker 容器中。我最初使用 artisan 服务系统作为 Web 服务器,但由于
Laravel Passport 登录无法使用 Jetstream Inertia 正确重定向
我已经用 Laravel Passport 实现了一个 OAuth 系统,但是该系统的登录和所有身份验证都是由 Laravel Jetstream 和 Inertia 处理的。 当我想请求代码时(使用
在哪里使用 dd() 函数来调试 Laravel 应用程序?
我需要知道如何在 Laravel 项目中正确使用 dd() 函数。 例如 - 我有任务来调试我的项目(PHP /Laravel)中的一些代码和功能,这总是需要我
Laravel 测试assertSessionDoesntHaveErrors() 没有发现错误?
我想在 Laravel 测试中断言两件事: 对象已成功更改(例如,assertSee('New value')) 会话中没有错误(例如,assertSessionDoesntHaveErrors())
我在 aws ec2 实例上运行 laravel 应用程序,并使用 laravel 护照通过不记名令牌来保护我的 api。 每次部署后,护照密钥都消失了,所以我在...之后添加了护照:安装命令
这是我的代码: @foreach($comments->where("id_answered_comment", null) as $comment) @php
如何在 vitest 中测试 laravel sainttum 路线
我有一个应用程序,使用 Vue 框架作为客户端,使用 laravel 框架作为服务器。 我的身份验证是通过 laravel sainttum 完成的,这是一个基于 cookie 的身份验证系统。 我当前的设置...
我正在尝试在 Laravel Inerita (Vue.js) 上设置本地化。我知道 https://github.com/mcamara/laravel-localization,但这不支持 Inertia(至少我没有成功
在 Laravel 10 项目中工作,我将使用以下 LoginController 将电话号码插入表中 公共函数提交(请求$请求) { $请求->验证([ ...
我的堆栈:Laravel 和 stripephp 场景:有一张已为订阅生成的未结发票。条带发票 ID (in_1PVBjnSE4D7cjIupbEfXsQ4w)。 我想实现以下目标 ...
我刚刚在 Laravel 中开始了一个新项目。我读到 Laravel 应该转到第一个匹配的路线,但在这里它会转到最后一个匹配的路线。如果我删除第三条路线,它会转到第二条...
我正在为我的应用程序使用 Laravel 7 和 Sanctum 身份验证。 如何执行注销程序? 我用: Auth::user()->tokens()->delete(); 它有效,但它删除了这个的所有标记......
我想根据listing_packages.order订购listing_data。这是查询 ListingData::with(['listing_package'])->orderBy('listing_package.order','desc')->paginate(24); 我会...
Laravel 计划 - Azure 门户中的 AppSettings
我正在 Azure 上运行 Laravel 应用程序(Linux 上的应用程序服务),并且我在门户本身中设置了一些设置,例如: DB_DATABASE=mydbname DB_USERNAME=mydbuser DB_PASSWORD=mydbuserpwd 这些值...
保存时我将所有空字段设置为空 使用OctoberCMS模型事件beforeSave(相当于Laravel模型保存) 公共函数 beforeSave() { // $this => 模型 foreach ( $
我从Colorlib购买了一个主题,Bootstrap Sidebar V02,包含SCSS文件。将这个外部 SCSS 文件添加到 Laravel 项目的相关方法是什么? mix.sass('资源/sass/样式。
我是 Laravel 的新手,我尝试将我的输入表单发布到会话中,但它不起作用,我收到此错误,但没有任何消息: Symfony \ 组件 \ HttpKernel \ 异常 \
我在 Cpanel 上部署了 Laravel 项目,但出现错误“无法找到驱动程序(SQL)” 我在Cpanel中使用Mysql数据库,并且我在PHP扩展中检查了pdo_mysql。 但当我看...
我正在使用 Laravel Fortify 来注册我的用户。 我有多种用户。 以下是访问注册控制器的代码: 路线::发布( RoutePath::for('注册', '/注册'...
Laravel 5.3,empty() 在查询中将零值视为空
在我的 laravel 项目(版本 5.3)中,我在 URL 中发送一个参数: 容器=0 但当它进入创建 SQL 查询的 PHP 函数时,它会将零视为空并满足...
我在 Laravel 8 上遇到语法问题。 在以前的版本中,我能够在路线上关联一组角色来定义用户是否有权访问特定路线。基本上...
我在构建 Laravel API 时尝试通过用户名查找用户。这就是我正在尝试的 api.php 路线::get('用户配置文件/用户/{用户}', 'UserProfileController@getUserProfile'); 控制器 公开
我正在开发一个应用程序,从 Mysql 数据库检索数据并使用 Laravel 和 Datatable 显示它,我不断收到此错误: “未找到‘数据表’类” 我尝试了不同的版本...
我有以下 dockerfile 来构建我的 Laravel Web 应用程序。运行它后,在尝试访问供应商和存储目录时出现权限错误。我的问题是什么是cor...
我不确定我是否在这里做了任何事情,而且我真的找不到任何关于此的文档。好的文档建议也很好。我尝试从 Laravel Collectives 中进行选择,但我...
我是Laravel框架的初学者。 我正在努力声明请求数据的验证。 我的表单中有一些复选框,并且必须至少选中其中一个复选框才能提交数据...
如何在共享主机上部署 laravel websockets?
我已经在本地主机上设置了我的 laravel websockets,它在本地主机上运行良好,但是当我将其上传到生产服务器时,出现以下错误。 WebSocket 连接到 'ws:/app/so...