Php 拉威尔刀片至Vuejs

Php 拉威尔刀片至Vuejs,php,laravel,Php,Laravel,我开始在laravel项目中使用vue.js,我想知道从控制器方法返回数据的最佳方法 我的意思是,我应该这样做以返回json格式,还是有其他最好的方式将数据传送到vue.js,我在app.blade.php中使用我的组件 这就是我现在在方法中返回数据的方式 response()->json($dataBaseData); 或者是否有其他最佳方式将数据传送到vue.js 谢谢最好、最简单的方法就是从控制器返回阵列或集合。它将自动转换为JSON,您无需执行任何操作 范例 $user=user

我开始在laravel项目中使用vue.js,我想知道从控制器方法返回数据的最佳方法

我的意思是,我应该这样做以返回json格式,还是有其他最好的方式将数据传送到vue.js,我在app.blade.php中使用我的组件

这就是我现在在方法中返回数据的方式

response()->json($dataBaseData);
或者是否有其他最佳方式将数据传送到vue.js


谢谢

最好、最简单的方法就是从控制器返回阵列或集合。它将自动转换为JSON,您无需执行任何操作

范例 $user=user::find1;
返回$user

我从控制器正常发送变量

you can use resources
 -php artisan make:resources nameExample --collection //if you want to return 
   collection
 -php artisan make:resources name  //if you want to return for example a single user


example1://single user
-php artisan make:resources UserResource
//in your controller you can do
$user = User::find(1);
return  new UserResource($user)
example2:
-php artisan make:resources PostResource --collection
//in your controller you can do
$posts= Post::all();
return  new PostResource( $posts);
public function index()
{
    $solutions = Solution::active()->get();
    return view('quote_my_projects.index', compact('solutions'));
}
在.blade.php文件中,我将其转换为JSON,如下所示

let appSolutions = new Vue({
    el: '#app',
    data: {
        solutions: {!! json_encode($solutions) !!},
    },
    methods: {
       //
 });

你这样做很好。使用return response->json可以很好地控制返回的内容、HTTP状态码、可变负载等@timleis是的,但有时我会尝试隐藏一些数据库字段,例如password,因为这个原因我们创建了资源?这很简单,不需要资源,可以用一个来完成,但不需要明确的资源。每个模型都有一个隐藏和可见的数组属性,用于控制转换为JSON时隐藏或可见的内容。在返回数据之前,您可以填写或修改它。非常感谢您提供了这么好的信息,只是我还有一个问题?我不需要创建API?我应该在什么时候创建一个只供公众使用的API?我是说为第三方服务?很乐意帮忙!当外部应用程序需要访问您的模型/控制器时,通常使用API。通过app.blade.php访问vue.js并不完全是外部的,因为它仍然在Laravel应用程序中,所以通过AJAX路由访问是完全可以的。外部应用程序可能类似于移动应用程序、独立网站、桌面应用程序等,需要访问数据,但不直接包含在您的Laravel应用程序中。人们为什么创建资源?它的本质是什么?我应该创建一个API吗?要在laravel后端和vuejs之间通信数据?