teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

微修正

2017/08/31 14:49

投稿

aro10
aro10

スコア4106

answer CHANGED
@@ -7,6 +7,7 @@
7
7
 
8
8
  [サンプルコード]
9
9
  即席ですが、http://test.dev/api_testにアクセスすると、その中でGuzzleでhttp://test.dev/api/regist_userにアクセスして、ユーザー登録するものを作ってみたので参考にしてみてください。
10
+ 外部のPHPプログラムからLaravelにアクセスする場合も、curl関数を使うよりGuzzleライブラリをComposerでインストールして使う方が扱いやすいかと思います。
10
11
 
11
12
  routes/web.php
12
13
  ```

3

サンプルコード追記

2017/08/31 14:49

投稿

aro10
aro10

スコア4106

answer CHANGED
@@ -3,4 +3,37 @@
3
3
  エラーが404であれば、routes/api.phpにルート定義を書くと、prefixとしてapiがつくのでアクセスはhttp://xxxx/api/register です、php artisan route:listでルート定義を一度確認してみてください
4
4
 
5
5
  [追記]
6
- $url = 'http://13.x.x.x/api/regist_user';をみると、apiと記載しているようなので、一度エラーの内容の詳細を教えてください。
6
+ $url = 'http://13.x.x.x/api/regist_user';をみると、apiと記載しているようなので、一度エラーの内容の詳細を教えてください。
7
+
8
+ [サンプルコード]
9
+ 即席ですが、http://test.dev/api_testにアクセスすると、その中でGuzzleでhttp://test.dev/api/regist_userにアクセスして、ユーザー登録するものを作ってみたので参考にしてみてください。
10
+
11
+ routes/web.php
12
+ ```
13
+ Route::get('/api_test', function () {
14
+ $client = new \GuzzleHttp\Client();
15
+ $res = $client->request('POST', 'http://test.dev/api/regist_user',[
16
+ 'form_params' => [
17
+ 'name' => 'testName',
18
+ 'email' => 'test@gmail.com',
19
+ 'password' => 'testpassword'
20
+ ],
21
+ ]);
22
+
23
+ echo $res->getBody();
24
+ echo $res->getStatusCode();
25
+ });
26
+ ```
27
+
28
+ routes/api.php
29
+ ```
30
+ Route::post('/regist_user', function (Request $request) {
31
+ \App\User::create([
32
+ 'name' => $request->input('name'),
33
+ 'email' => $request->input('email'),
34
+ 'password' => bcrypt($request->input('password')),
35
+ ]);
36
+ return "ok";
37
+ });
38
+ ```
39
+

2

追記

2017/08/31 14:40

投稿

aro10
aro10

スコア4106

answer CHANGED
@@ -1,3 +1,6 @@
1
1
  Web用のRegisterController.phpはVerifyCsrfTokenミドルウェアの働きで、CSRFトークンが無いと失敗するかと思います。
2
2
  APIで実現するならば、POSTで受け取ったデータを元に適時バリデーションを行いUser::createをするコントローラをAPI用に自作すると良いかと思います。
3
- エラーが404であれば、routes/api.phpにルート定義を書くと、prefixとしてapiがつくのでアクセスはhttp://xxxx/api/register です、php artisan route:listでルート定義を一度確認してみてください
3
+ エラーが404であれば、routes/api.phpにルート定義を書くと、prefixとしてapiがつくのでアクセスはhttp://xxxx/api/register です、php artisan route:listでルート定義を一度確認してみてください
4
+
5
+ [追記]
6
+ $url = 'http://13.x.x.x/api/regist_user';をみると、apiと記載しているようなので、一度エラーの内容の詳細を教えてください。

1

微修正

2017/08/31 14:28

投稿

aro10
aro10

スコア4106

answer CHANGED
@@ -1,3 +1,3 @@
1
1
  Web用のRegisterController.phpはVerifyCsrfTokenミドルウェアの働きで、CSRFトークンが無いと失敗するかと思います。
2
2
  APIで実現するならば、POSTで受け取ったデータを元に適時バリデーションを行いUser::createをするコントローラをAPI用に自作すると良いかと思います。
3
- エラーが4040であれば、routes/api.phpにルート定義を書くと、prefixとしてapiがつくのでアクセスはhttp://xxxx/api/register です、php artisan route:listでルート定義を一度確認してみてください
3
+ エラーが404であれば、routes/api.phpにルート定義を書くと、prefixとしてapiがつくのでアクセスはhttp://xxxx/api/register です、php artisan route:listでルート定義を一度確認してみてください