質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

2140閲覧

laravelソート機能について

yoyoyo5962

総合スコア24

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2022/01/11 12:35

laravelでorderbyメソッドを使用して日付順に並べ替えをしようと思っていますが。
その処理をコントローラーのどのfunctionに入れればいいのか分からなくなってしまいました。
どなたかヒントを頂けないでしょうか。

下記bladeファイルです。

php

1<!DOCTYPE html> 2@extends('layouts.layout') 3{{-- layout.blade.phpの@yield('title')'埋めこみ --}} 4@section('title', 'task management') 5{{-- layout.blade.phpの@yield('content')に以下のタグを埋め込む --}} 6@section('content') 7 <div class="container"> 8 <div class="row"> 9 <div class="col-md-8 mx-auto"> 10 <h2>Todoリスト登録</h2> 11 <form action="{{ action('TaskController@store') }}" method="post" enctype="multipart/form-data"> 12 @if (count($errors) > 0) 13 <ul> 14 @foreach($errors->all() as $e) 15 <li>{{ $e }}</li> 16 @endforeach 17 </ul> 18 @endif 19 <div class="form-group"> 20 <label class="formGroupExampleInput"for="title">題名</label> 21 <input type="text" class="form-control" id="formGroupExampleInput" placeholder="題名を登録して下さい" name="title" value="{{ old('title') }}"> 22 </div> 23 <div class="form-group"> 24 <label class="formGroupExampleInput2"for="body">Todo</label> 25 <input type="text" class="form-control" id="formGroupExampleInput2" placeholder="Todoを登録して下さい" name="body" value="{{ old('body') }}"> 26 </div> 27 <!--下記日付の登録フォーム--> 28 <div class="form-group"> 29 <div class="text-right"> 30 <label for="deadline">期限入力<lavel> 31 <input type="date" name="deadline"> 32 </div> 33 </div> 34 <!--下記status_nameのデフォルト値の入力--> 35 <input type="hidden" name="status_name" value="未着"> 36 <!--下記ボタンの右寄せ--> 37 {{ csrf_field() }} 38 <div class="text-right"> 39 <input type="submit" class="btn btn-primary" value="登録"> 40 </div> 41 </form> 42 </div> 43 </div> 44 <div class="row"> 45 <div class="col-md-9 mx-auto"> 46 <div class="col-md-8"> 47 <h2>リスト一覧</h2> 48 </div> 49 <div class="col-md-4"> 50 <form action="{{ action('TaskController@index') }}" method="get"> 51 <div class="form-group row "> 52 <label class="col-md-3">題名</label> 53 <div class="col-md-6"> 54 <input type="text" class="form-control" name="search_title" value="{{ $search_title }}"> 55 </div> 56 <div class="col-md-2"> 57 {{ csrf_field() }} 58 <input type="submit" class="btn btn-primary" value="検索"> 59 </div> 60 </div> 61 </form> 62 </div> 63 </div> 64 <div> 65 <!--ここに期限順のソートを入れる予定です。--> 66 </div> 67 </div>

下記コントローラーファイルです。

php

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use App\Http\Controllers\Controller; 7use App\Task; 8use Illuminate\Support\Facades\Auth; 9 10class TaskController extends Controller 11{ 12 public function add() 13 { 14 15 return view('tasks.index'); 16 17 } 18 /** 19 * Display a listing of the resource. 20 * 21 * @return \Illuminate\Http\Response 22 */ 23 24 public function index(Request $request) 25 { 26 $search_title = $request->search_title; 27 if ($search_title != '') { 28 // ユーザー情報持ってきて 関連するユーザーのタスク持ってきて その中からさらにタイトルで絞り込み 29 $tasks = Auth::user()->tasks->where('title', $search_title); 30 // $tasks = Task::where('title', $search_title)->get(); 31 } 32 else { 33 // 入ってなければ全件取得 34 $tasks = Auth::user()->tasks; 35 // $tasks = Task::all(); 36 } 37 return view('tasks.index', ['tasks' => $tasks, 'search_title' => $search_title]); 38 } 39 40 41 /** 42 * Show the form for creating a new resource. 43 * 44 * @return \Illuminate\Http\Response 45 */ 46 public function create() 47 { 48 return redirect('/tasks'); 49 50 } 51 52 /** 53 * Store a newly created resource in storage. 54 * 55 * @param \Illuminate\Http\Request $request 56 * @return \Illuminate\Http\Response 57 */ 58 public function store(Request $request) 59 { 60 // session()->flash('flash_message', '投稿が完了しました'); 61 echo "完了"; 62 63 // データベースに登録できる処理入れる 64 //mysqlでデータベースに保存されてるか確認 65 $task = new Task; 66 $form = $request->all(); 67 unset($form['_token']); 68 $task->fill($form); 69 // $task->deadline = '2022-01-01'; 70 $task->user_id = $request->user()->id; 71 $task->save(); 72 73 return redirect('/tasks'); 74 75 76 //select * from taskmanagement.tasks; 77 78 } 79 80 /** 81 * Display the specified resource. 82 * 83 * @param int $id 84 * @return \Illuminate\Http\Response 85 */ 86 public function show($id) 87 { 88 // 89 } 90 91 /** 92 * Show the form for editing the specified resource. 93 * 94 * @param int $id 95 * @return \Illuminate\Http\Response 96 */ 97 public function edit(Request $request) 98 { 99 100 // Modelからデータの取得 101 $task = Task::find($request->id); 102 // $task->status_id = 0; 103 104 return view('tasks.edit', ['task_form' => $task]); 105 } 106 107 /** 108 * Update the specified resource in storage. 109 * 110 * @param \Illuminate\Http\Request $request 111 * @param int $id 112 * @return \Illuminate\Http\Response 113 */ 114 public function update(Request $request) 115 { 116 117 // Modelからデータの取得 118 $task = Task::find($request->id); 119 // 送信されてきたフォームデータの格納 120 $task_form = $request->all(); 121 unset($task_form['_token']); 122 //データの上書き 123 $task->fill($task_form); 124 // $task->deadline = '2022-01-01'; 125 $task->save(); 126 127 return redirect('/tasks'); 128 } 129 130 /** 131 * Remove the specified resource from storage. 132 * 133 * @param int $id 134 * @return \Illuminate\Http\Response 135 */ 136 public function delete(Request $request) 137 { 138 // Modelからデータの取得 139 $task = Task::find($request->id); 140 // 削除 141 $task->delete(); 142 //戻る処理  143 return redirect('/tasks'); 144 145 } 146}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2022/01/11 20:47

Laravelの機能に関する質問でしたら質問タグに必要に思います。(PHPできる人がみんなLaravelもできるわけではないです)
guest

回答2

0

そのコントローラーの内容であれば、indexでよいかと思います。

投稿2022/01/14 12:31

masayan_dev

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

質問が漠然としすぎていて難しいのですが、質問文のソースコードにおいてorderByを使うなら

$tasks = Auth::user()->tasks->where('title', $search_title); // $tasks = Task::where('title', $search_title)->get();

もしくは

$tasks = Auth::user()->tasks; // $tasks = Task::all();

のどこかに入れるしかないのでは? 何をソートしたいのか?も不明ですし、ソースがコメントアウトされてたりで、これ以上具体的なアドバイスはできませんが。他でorderBy使えそうな所はないです。

参考)
https://readouble.com/laravel/8.x/ja/eloquent.html
のorderByの項を参考にしてください。

投稿2022/01/11 13:59

AbeTakashi

総合スコア4537

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問